Esempio n. 1
0
EvolDF1nlep::EvolDF1nlep(unsigned int dim_i, schemes scheme, orders order, orders_ew 
    order_ew, const StandardModel& model)
: RGEvolutor(dim_i, scheme, order, order_ew), model(model), V(dim_i,0.), Vi(dim_i,0.),
    gs(dim_i,0.), Js(dim_i,0.), ge0(dim_i,0.), K0(dim_i,0.), ge11(dim_i,0.), K11(dim_i,0.),
    JsK0V(dim_i,0.), ViK0Js(dim_i,0.), Gamma_s0T(dim_i,0.), Gamma_s1T(dim_i,0.), 
    Gamma_eT(dim_i,0.), Gamma_seT(dim_i,0.), JsV(dim_i,0.), ViJs(dim_i,0.), K0V(dim_i,0.), 
    ViK0(dim_i,0.), K11V(dim_i,0.), ViK11(dim_i,0.), ge11sing(dim_i,0.), K11sing(dim_i,0.), 
    K11singV(dim_i,0.), e(dim_i,0.), dim(dim_i) {
    
    int nu = 0, nd = 0;
    double  b0 = 0., b1 = 0.;
    
    /* L=3 --> u,d,s,c (nf=3) L=2 --> u,d,s,c (nf=4)  L=1 --> u,d,s,c,b (nf=5) L=0 --> u,d,s,c,b,t (nf=6)*/
    for(int L=3; L>-1; L--){
        
        b0 = model.Beta0(6-L);
        b1 = model.Beta1(6-L);
        
	if(L == 3){nd = 2; nu = 1;} 
        if(L == 2){nd = 2; nu = 2;}
        if(L == 1){nd = 3; nu = 2;} 
        if(L == 0){nd = 3; nu = 3;}
        
        Gamma_s0T = AnomalousDimension_nlep_S(LO,nu,nd).transpose();
        Gamma_s1T = AnomalousDimension_nlep_S(NLO,nu,nd).transpose();
        Gamma_eT = AnomalousDimension_nlep_EM(LO,nu,nd).transpose();
        Gamma_seT = AnomalousDimension_nlep_EM(NLO,nu,nd).transpose();
        
        AnomalousDimension_nlep_S(LO,nu,nd).transpose().eigensystem(V,e);
        Vi = V.inverse();
        
        /* magic numbers of U0 */
        for(unsigned int i = 0; i < dim; i++){
            a[L][i] = e(i).real()/2./b0;
            for (unsigned int j = 0; j < dim; j++){
                for (unsigned int k = 0; k < dim; k++){
                    b[L][i][j][k] = V(i, k).real() * Vi(k, j).real();
                }
            }
        }
    
        gs = (b1/2./b0/b0) * Vi * Gamma_s0T * V - (1./2./b0) * Vi * Gamma_s1T * V;
        for(unsigned int i = 0; i<dim ; i++){
            for(unsigned int j = 0; j<dim ; j++){  
                gs.assign( i , j, gs(i,j)/(1. + a[L][i] - a[L][j]));
            }
        }
        Js = V * gs * Vi;
        
        /*magic numbers related to Js*/
        JsV = Js*V;
        ViJs = Vi * Js;
        for(unsigned int i = 0; i<dim; i++){
            for(unsigned int j = 0; j<dim; j++){
                for(unsigned int k = 0; k<dim; k++){
                    c[L][i][j][k] = JsV(i, k).real() * Vi(k, j).real();
                    d[L][i][j][k] = -V(i, k).real() * ViJs(k, j).real();
                }
            }
        }
        
        ge0 = (1./2./b0) *  Vi * Gamma_eT * V;
        for(unsigned int i = 0; i<dim ; i++){
            for(unsigned int j = 0; j<dim ; j++){
                ge0.assign( i , j, ge0(i,j)/(1. - a[L][i] + a[L][j]));
            }
        }
        K0 = V * ge0 * Vi;
        
        /*magic numbers related to K0*/
        K0V = K0*V;
        ViK0 = Vi * K0;
        for(unsigned int i = 0; i<dim; i++){
            for(unsigned int j = 0; j<dim; j++){
                for(unsigned int k = 0; k<dim; k++){
                    m[L][i][j][k] = K0V(i, k).real() * Vi(k, j).real();
                    n[L][i][j][k] = -V(i, k).real() * ViK0(k, j).real();
                }
            }
        }
        
        ge11 = Gamma_seT - (b1/b0) * Gamma_eT + Gamma_eT * Js - Js * Gamma_eT;
        ge11 = Vi * ge11;
        ge11 = ge11 * V;
        for(unsigned int i = 0; i<dim ; i++){
            for(unsigned int j = 0; j<dim ; j++){
                if(fabs(a[L][j]-a[L][i])> 0.00000000001){
                    ge11.assign( i , j, ge11(i,j)/( 2. * b0 * (a[L][j] - a[L][i])));
                }
                else{
                    ge11sing.assign( i, j, ge11(i,j)/2./b0);
                    ge11.assign( i , j, 0.);
                }
            }
        }
        K11 = V * ge11 * Vi;
        K11sing = V * ge11sing * Vi;
        /*magic numbers related to K11*/
        K11V = K11 * V;
        ViK11 = Vi * K11;
        K11singV = K11sing * V;
        if(L==1){
        }
        for(unsigned int i = 0; i<dim ; i++){
            for(unsigned int j = 0; j<dim ; j++){
                    for(unsigned int k = 0; k<dim ; k++){
                        o[L][i][j][k] = K11V(i, k).real() * Vi(k, j).real();
                        p[L][i][j][k] = -V(i, k).real() * ViK11(k, j).real();
                        u[L][i][j][k] = K11singV(i, k).real() * Vi(k, j).real();
                    }
                }    
            }
        
        /*magic numbers related to K12 and K13*/
        JsK0V = Js * K0 * V; 
        ViK0Js = Vi * K0 * Js;
        for(unsigned int i = 0; i<dim ; i++){
            for(unsigned int j = 0; j<dim ; j++){
                for(unsigned int k=0; k<dim; k++){
                    q[L][i][j][k] =  JsK0V(i, k).real() * Vi(k, j).real();
                    r[L][i][j][k] =  V(i, k).real() * ViK0Js(k, j).real();
                    s[L][i][j][k] = -JsV(i, k).real() * ViK0(k, j).real();
                    t[L][i][j][k] = -K0V(i, k).real() * ViJs(k, j).real();
                }
            }
        }
    }        
}
Esempio n. 2
0
EvolDC1Buras::EvolDC1Buras(unsigned int dim_i, schemes scheme, orders order, const StandardModel& model) 
:           RGEvolutor(dim_i, scheme, order), model(model),
            v(dim_i,0.), vi(dim_i,0.), js(dim_i,0.), h(dim_i,0.), gg(dim_i,0.), s_s(dim_i,0.),
            jssv(dim_i,0.), jss(dim_i,0.), jv(dim_i,0.), vij(dim_i,0.), e(dim_i,0.), dim(dim_i)  
{
    
    /*magic numbers a & b */
    
    for(int L=2; L>-1; L--){
        
    /* L=2 --> u,d,s,c (nf=4)  L=1 --> u,d,s,c,b (nf=5) L=0 --> u,d,s,c,b,t (nf=6)*/
        
    nu = L;  nd = L;
    if(L == 1){nd = 3; nu = 2;} 
    if(L == 0){nd = 3; nu = 3;}
    
    AnomalousDimension_DC1_Buras(LO,nu,nd).transpose().eigensystem(v,e);
    vi = v.inverse();
    for(unsigned int i = 0; i < dim; i++){
       a[L][i] = e(i).real();
       for (unsigned int j = 0; j < dim; j++) {
           for (unsigned int k = 0; k < dim; k++)  {
                b[L][i][j][k] = v(i, k).real() * vi(k, j).real();
               }
           }
       }
    
    // LO evolutor in the standard basis
    
    gg = vi * AnomalousDimension_DC1_Buras(NLO,nu,nd).transpose() * v;
    double b0 = model.Beta0(6-L);
    double b1 = model.Beta1(6-L);
    for (unsigned int i = 0; i < dim; i++){
        for (unsigned int j = 0; j < dim; j++){
            s_s.assign( i, j, (b1 / b0) * (i==j) * e(i).real() - gg(i,j));    
            if(fabs(e(i).real() - e(j).real() + 2. * b0)>0.00000000001){
                h.assign( i, j, s_s(i,j) / (2. * b0 + e(i) - e(j)));
                }
            }
        }
    js = v * h * vi;
    jv = js * v;
    vij = vi * js;
    jss = v * s_s * vi;
    jssv = jss * v;        
    for (unsigned int i = 0; i < dim; i++){
        for (unsigned int j = 0; j < dim; j++){
            if(fabs(e(i).real() - e(j).real() + 2. * b0) > 0.00000000001){
                for(unsigned int k = 0; k < dim; k++){
                        c[L][i][j][k] = jv(i, k).real() * vi(k, j).real();
                        d[L][i][j][k] = -v(i, k).real() * vij(k, j).real();
                        }
                    }
            else{    
                for(unsigned int k = 0; k < dim; k++){
                   c[L][i][j][k] = (1./(2. * b0)) * jssv(i, k).real() * vi(k, j).real();
                   d[L][i][j][k] = 0.;
                   }   
                }
            }
        }
    }
}