File indexing completed on 2026-08-06 09:20:08
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef EVTVUBBLNPHYBRID_HH
0022 #define EVTVUBBLNPHYBRID_HH
0023
0024 #include "EvtGenBase/EvtDecayIncoherent.hh"
0025
0026 #include <vector>
0027
0028 class EvtParticle;
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045 class EvtVubBLNPHybrid : public EvtDecayIncoherent {
0046 public:
0047 std::string getName() override;
0048
0049 EvtDecayBase* clone() override;
0050
0051 void initProbMax() override;
0052
0053 void init() override;
0054
0055 void decay( EvtParticle* Bmeson ) override;
0056
0057 void readWeights( int startArg = 0 );
0058
0059 double getWeight( double mX, double q2, double El );
0060
0061 private:
0062
0063 enum
0064 {
0065 nParameters = 10,
0066 nVariables = 3
0067 };
0068 bool _noHybrid = false;
0069 bool _storeWhat = true;
0070 int _nbins = 0;
0071 double _masscut = 0.28;
0072 std::vector<double> _bins_mX;
0073 std::vector<double> _bins_q2;
0074 std::vector<double> _bins_El;
0075 std::vector<double> _weights;
0076
0077
0078 double mBB;
0079 double lambda2;
0080
0081
0082 double b;
0083 double Lambda;
0084 double Ecut;
0085 double wzero;
0086
0087
0088 int itype;
0089 double dtype;
0090 int isubl;
0091
0092
0093 int flag1;
0094 int flag2;
0095 int flag3;
0096
0097
0098 double mb;
0099
0100
0101 double muh;
0102 double mui;
0103 double mubar;
0104
0105
0106 double CF;
0107 double CA;
0108
0109 double beta0;
0110 double beta1;
0111 double beta2;
0112
0113 double zeta3;
0114
0115 double Gamma0;
0116 double Gamma1;
0117 double Gamma2;
0118
0119 double gp0;
0120 double gp1;
0121
0122 double Lbar;
0123 double mupisq;
0124 double moment2;
0125
0126 int flagpower;
0127 int flag2loop;
0128
0129 int maxLoop;
0130 double precision;
0131
0132 std::vector<double> gvars;
0133
0134 double rate3( double Pp, double Pl, double Pm );
0135 double F1( double Pp, double Pm, double muh, double mui, double mubar,
0136 double doneJS, double done1 );
0137 double F2( double Pp, double Pm, double muh, double mui, double mubar,
0138 double done3 );
0139 double F3( double Pp, double Pm, double muh, double mui, double mubar,
0140 double done2 );
0141 double DoneJS( double Pp, double Pm, double mui );
0142 double Done1( double Pp, double Pm, double mui );
0143 double Done2( double Pp, double Pm, double mui );
0144 double Done3( double Pp, double Pm, double mui );
0145 static double IntJS( double what, const std::vector<double>& vars );
0146 static double Int1( double what, const std::vector<double>& vars );
0147 static double Int2( double what, const std::vector<double>& vars );
0148 static double Int3( double what, const std::vector<double>& vars );
0149 static double g1( double w, const std::vector<double>& vars );
0150 static double g2( double w, const std::vector<double>& vars );
0151 static double g3( double w, const std::vector<double>& vars );
0152 static double Shat( double w, const std::vector<double>& vars );
0153 static double Mzero( double muf, double mu, double mupisq,
0154 const std::vector<double>& vars );
0155 double wS( double w );
0156 double t( double w );
0157 double u( double w );
0158 double v( double w );
0159 double myfunction( double w, double Lbar, double mom2 );
0160 double myfunctionBIK( double w, double Lbar, double mom2 );
0161 double dU1nlo( double muh, double mui );
0162 double U1lo( double muh, double mui );
0163 double Sfun( double mu1, double mu2, double epsilon );
0164 double S0( double a1, double r );
0165 double S1( double a1, double r );
0166 double S2( double a1, double r );
0167 double aGamma( double mu1, double mu2, double epsilon );
0168 double agp( double mu1, double mu2, double epsilon );
0169 double alo( double muh, double mui );
0170 double anlo( double muh, double mui );
0171 static double alphas( double mu, const std::vector<double>& vars );
0172 double PolyLog( double v, double z );
0173 static double Gamma( double z );
0174 static double Gamma( double a, double x );
0175 static double gamser( double a, double x, double LogGamma );
0176 static double gammcf( double a, double x, double LogGamma );
0177 double findBLNPWhat();
0178 std::vector<double> _pf;
0179 };
0180
0181 #endif