602 {
603
604 double nfu,nfd;
605
606 if(nf==1){
607 nfu=1.;
608 nfd=0;
609 }else{
610 nfu = floor(nf/2.) ;
611 nfd = nf-nfu ;
612 }
613
614
615
616
617
618 switch (contribution)
619 {
620 case (0):
621 {
622 switch (order_qed)
623 {
625 {
626 switch (order)
627 {
629 {
630 double gamma_nuB = -8. ;
631 double gamma_M = 8. ;
632 double beta = 11. - 2. / 3. * nf ;
633 double gamma_nu = 2. * ( gamma_M - beta ) ;
634
635 gslpp::matrix<double> gamma_T(2, 0.);
636
637 gamma_T(0,0) = 0.;
638 gamma_T(1,0) = gamma_nuB;
639 gamma_T(1,1) = gamma_nu;
640
641 return (gamma_T);
642
643 break;
644
645 }
647 {
649 double gamma_M = 404. / 3. - 40. / 9. * nf ;
650 double beta = 102. - 38. / 3. * nf ;
651 double gamma_nu = 2. * ( gamma_M - beta ) ;
652
653 gslpp::matrix<double> gamma_T(2, 0.);
654
655 gamma_T(0,0) = 0.;
656 gamma_T(1,0) = gamma_nuB;
657 gamma_T(1,1) = gamma_nu;
658
659 return (gamma_T);
660
661 break;
662
663 }
665 {
666 double gamma_nuB = 2. *
model.
getCF() * (69. / 3. - 458./3.*3. - (48. / 3. - 96. * 3.) * gsl_sf_zeta_int(3) + 38. / 3. * nf) ;
667 double gamma_M = 2498. - (4432./27. + 320.*gsl_sf_zeta_int(3)/3.) * nf - (280. * nf * nf )/81. ;
668 double beta = 2857./2. - 5033.*nf/18. + 325.*nf*nf/54. ;
669 double gamma_nu = 2. * ( gamma_M - beta ) ;
670
671 gslpp::matrix<double> gamma_T(2, 0.);
672
673 gamma_T(0,0) = 0.;
674 gamma_T(1,0) = gamma_nuB;
675 gamma_T(1,1) = gamma_nu;
676
677 return (gamma_T);
678
679 break;
680
681 }
682 default:
683 std::stringstream out;
684 out << order;
685 throw std::runtime_error("Charm_Kpnunu::ADM: order " + out.str() + " not implemented\n");
686
687 }
688 }
690 {
691 double gamma_W = -4. ;
692 double gamma_nuB = 0. ;
693 double gamma_M = 8. / 3. ;
694 double beta = 0. ;
695 double gamma_nu = 2. * ( gamma_M - beta ) ;
696
697 gslpp::matrix<double> gamma_T(2, 0.);
698
699 gamma_T(0,0) = 2. * gamma_W;
700 gamma_T(1,0) = gamma_nuB;
701 gamma_T(1,1) = gamma_nu;
702
703 return (gamma_T);
704
705 break;
706 }
708 {
709 double gamma_W = 4. ;
710 double gamma_nuB = -316. / 9. ;
711 double gamma_M = 32. / 9. ;
712 double beta = -8. / 9. * (nfu + nfd/4. ) ;
713 double gamma_nu = 2. * ( gamma_M - beta ) ;
714
715 gslpp::matrix<double> gamma_T(2, 0.);
716
717 gamma_T(0,0) = 2. * gamma_W;
718 gamma_T(1,0) = gamma_nuB;
719 gamma_T(1,1) = gamma_nu;
720
721 return (gamma_T);
722
723 break;
724 }
725 default:
726 std::stringstream out, out2;
727 out << order_qed;
728 out2 << contribution;
729 throw std::runtime_error("Charm_Kpnunu::ADM: order_qed " + out.str() + " of contribution " + out2.str() + " not implemented\n");
730 }
731 }
732 case (1):
733 {
734 switch (order_qed)
735 {
737 {
738 switch (order)
739 {
741 {
742 gslpp::matrix<double> gamma_pm(2,0.);
743 gamma_pm(0,0)= +6.*(1.-1./3.);
744 gamma_pm(0,1)= 0.;
745 gamma_pm(1,0)= 0.;
746 gamma_pm(1,1)= -6.*(1.+1./3.);
747
748 double gamma_pnu = -0.5 * ( -4. * ( 1. + 3. ) ) ;
749 double gamma_mnu = -0.5 * ( -4. * ( 1. - 3. ) ) ;
750 double gamma_M = 8. ;
751 double beta = 11. - 2. / 3. * nf ;
752 double gamma_nu = 2. * ( gamma_M - beta ) ;
753
754 gslpp::matrix<double> gamma_T(3, 0.);
755
756 gamma_T(0,0) = gamma_pm(0,0);
757 gamma_T(1,0) = gamma_pm(0,1);
758 gamma_T(0,1) = gamma_pm(1,0);
759 gamma_T(1,1) = gamma_pm(1,1);
760
761 gamma_T(2,0) = gamma_pnu;
762 gamma_T(2,1) = gamma_mnu;
763
764 gamma_T(2,2) = gamma_nu;
765
766 return (gamma_T);
767 break;
768
769 }
771 {
772 gslpp::matrix<double> gamma_pm(2,0.);
773 gamma_pm(0,0)= (-21./2. + 2.*nf/3.) * (1. - 1./3.);
774 gamma_pm(0,1)= 0.;
775 gamma_pm(1,0)= 0.;
776 gamma_pm(1,1)= (-21./2. - 2.*nf/3.) * (1. + 1./3.);
777
778 double gamma_pnu = -0.5 * ( 16. * (2. - 11.) ) ;
779 double gamma_mnu = -0.5 * ( 16. * (2. + 11.) ) ;
780 double gamma_M = 404. / 3. - 40. / 9. * nf ;
781 double beta = 102. - 38. / 3. * nf ;
782 double gamma_nu = 2. * ( gamma_M - beta ) ;
783
784 gslpp::matrix<double> gamma_T(3, 0.);
785
786 gamma_T(0,0) = gamma_pm(0,0);
787 gamma_T(1,0) = gamma_pm(0,1);
788 gamma_T(0,1) = gamma_pm(1,0);
789 gamma_T(1,1) = gamma_pm(1,1);
790
791 gamma_T(2,0) = gamma_pnu;
792 gamma_T(2,1) = gamma_mnu;
793
794 gamma_T(2,2) = gamma_nu;
795
796 return (gamma_T);
797 break;
798
799 }
801 {
802 gslpp::matrix<double> gamma_pm(2,0.);
803 gamma_pm(0,0)= 1./300. * (349049. + 201485.) - 1./1350. * (115577. - 9795.)*nf - 130./27. * (1. - 1./3.)*nf*nf - (672. + 80. * (1. - 1./3.)*nf ) * gsl_sf_zeta_int(3);
804 gamma_pm(0,1)= 0.;
805 gamma_pm(1,0)= 0.;
806 gamma_pm(1,1)= 1./300. * (349049. - 201485.) - 1./1350. * (115577. + 9795.)*nf + 130./27. * (1. + 1./3.)*nf*nf + (672. + 80. * (1. + 1./3.)*nf ) * gsl_sf_zeta_int(3);
807
808 double gamma_pnu = -0.5 * ( -2./225. * (45124. + 484917.) + 32.*(13. + 15.)*gsl_sf_zeta_int(3) + 144.*nf ) ;
809 double gamma_mnu = -0.5 * ( -2./225. * (45124. - 484917.) + 32.*(13. - 15.)*gsl_sf_zeta_int(3) - 144.*nf );
810 double gamma_M = 2498. - (4432./27. + 320.*gsl_sf_zeta_int(3)/3.) * nf - (280. * nf * nf )/81. ;
811 double beta = 2857./2. - 5033.*nf/18. + 325.*nf*nf/54. ;
812 double gamma_nu = 2. * ( gamma_M - beta ) ; ;
813
814 gslpp::matrix<double> gamma_T(3, 0.);
815
816 gamma_T(0,0) = gamma_pm(0,0);
817 gamma_T(1,0) = gamma_pm(0,1);
818 gamma_T(0,1) = gamma_pm(1,0);
819 gamma_T(1,1) = gamma_pm(1,1);
820
821 gamma_T(2,0) = gamma_pnu;
822 gamma_T(2,1) = gamma_mnu;
823
824 gamma_T(2,2) = gamma_nu;
825
826 return (gamma_T);
827 break;
828
829 }
830 default:
831 std::stringstream out;
832 out << order;
833 throw std::runtime_error("Charm_Kpnunu::ADM: order " + out.str() + " not implemented\n");
834
835 }
836 }
838 {
839 gslpp::matrix<double> gamma_pm(2,0.);
840 gamma_pm(0,0)= -8./3.;
841 gamma_pm(0,1)= 0.;
842 gamma_pm(1,0)= 0.;
843 gamma_pm(1,1)= -8./3.;
844
845 double gamma_pnu = 0. ;
846 double gamma_mnu = 0. ;
847 double gamma_M = 8. / 3. ;
848 double beta = 0. ;
849 double gamma_nu = 2. * ( gamma_M - beta ) ;
850
851 gslpp::matrix<double> gamma_T(3, 0.);
852
853 gamma_T(0,0) = gamma_pm(0,0);
854 gamma_T(1,0) = gamma_pm(0,1);
855 gamma_T(0,1) = gamma_pm(1,0);
856 gamma_T(1,1) = gamma_pm(1,1);
857
858 gamma_T(2,0) = gamma_pnu;
859 gamma_T(2,1) = gamma_mnu;
860
861 gamma_T(2,2) = gamma_nu;
862
863 return (gamma_T);
864
865 break;
866 }
868 {
869 gslpp::matrix<double> gamma_12(2,0.);
870 gslpp::matrix<complex> trash(2,0.);
871 gslpp::vector<complex> ev_gamma12(2,0.);
872
873 gamma_12.assign(0,0,194./9.);
874 gamma_12.assign(0,1,-2./3.);
875 gamma_12.assign(1,0,25./3.);
876 gamma_12.assign(1,1,-49./9.) ;
877
878 gamma_12.eigensystem(trash,ev_gamma12);
879
880 double gamma_pnu = 0. ;
881 double gamma_mnu = 0. ;
882 double gamma_M = 32. / 9. ;
883 double beta = -8. / 9. * (nfu + nfd/4. ) ;
884 double gamma_nu = 2. * ( gamma_M - beta ) ;
885
886 gslpp::matrix<double> gamma_T(3, 0.);
887
888 gamma_T(0,0) = ev_gamma12(0).real();
889 gamma_T(1,1) = ev_gamma12(1).real();
890
891 gamma_T(2,0) = gamma_pnu;
892 gamma_T(2,1) = gamma_mnu;
893
894 gamma_T(2,2) = gamma_nu;
895
896 return (gamma_T);
897
898 break;
899 }
900 default:
901 std::stringstream out, out2;
902 out << order_qed;
903 out2 << contribution;
904 throw std::runtime_error("Charm_Kpnunu::ADM: order_qed " + out.str() + " of contribution " + out2.str() + " not implemented\n");
905 break;
906 }
907 break;
908 }
909 default:
910 std::stringstream out ;
911 out << contribution;
912 throw std::runtime_error("Charm_Kpnunu::ADM: contribution " + out.str() + " not implemented\n");
913 break;
914 }
915
916
917}
const double getCF() const
A get method to access the Casimir factor of QCD.