[cvs] / MG_ME / Models / sm / couplings.f Repository:
ViewVC logotype

Diff of /MG_ME/Models/sm/couplings.f

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1.1.1, Thu May 18 13:30:34 2006 UTC revision 1.16, Wed Jun 2 00:18:38 2010 UTC
# Line 32  Line 32 
32  c----------------------------------------------------------------------  c----------------------------------------------------------------------
33    
34    
35        subroutine setpara        subroutine setpara(param_name,readlha)
36  c***********************************************************************  c***********************************************************************
37  c This subroutine sets up the HELAS couplings of the STANDARD MODEL.  c This subroutine sets up the HELAS couplings of the STANDARD MODEL.
38  c***********************************************************************  c***********************************************************************
# Line 40  Line 40 
40  c  c
41  c local  c local
42  c  c
43          character*(*) param_name
44          logical readlha
45        integer i        integer i
46        real*8 dum        real*8 dum
47  c  c
# Line 50  Line 52 
52  c     local  c     local
53  c  c
54        double precision  v        double precision  v
55        double precision  ee, ee2, ez, ey, sw, cw, sc2        double precision  ee, ee2, ez, ey, sw, cw, sc2, sin2w, wm
56        double precision  gwne, gwud, lambda, lam4, xt, rew, rqcd        double precision  gwne, gwud, lambda, lam4, xt, rew, rqcd
57        double precision  alphas, alfa, alfaw, mfrun        double precision  alphas, alfa, alfaw, mfrun
58        external          alphas, alfa, alfaw, mfrun        external          alphas, alfa, alfaw, mfrun
59  c  c
60  c     Common to lh_readin and printout  c     Common to lh_readin and printout
61  c  c
62        double precision  alpha, sin2w, gfermi, alfas        double precision  alpha, gfermi, alfas
63        double precision  mtMS,mbMS,mcMS,mtaMS!MSbar masses        double precision  mtMS,mbMS,mcMS,mtaMS!MSbar masses
64        double precision  Vud,Vus             !CKM matrix elements        double precision  Vud,Vus             !CKM matrix elements
65        common/values/    alpha,sin2w,gfermi,alfas,        common/values/    alpha,gfermi,alfas,
66       &                  mtMS,mbMS,mcMS,mtaMS,       &                  mtMS,mbMS,mcMS,mtaMS,
67       &                  Vud       &                  Vud
68  c  c
# Line 76  Line 78 
78        parameter( Pi = 3.14159265358979323846d0 )        parameter( Pi = 3.14159265358979323846d0 )
79        parameter( Fourpi = Four * Pi )        parameter( Fourpi = Four * Pi )
80  c  c
 c     alfas and run  
 c  
       include '../alfas.inc'  
       include '../run.inc'  
 c  
81  c------------------------------------------  c------------------------------------------
82  c Start calculating the couplings for HELAS  c Start calculating the couplings for HELAS
83  c------------------------------------------  c------------------------------------------
84  c  c
85        call lh_readin        if(readlha) then
86  c           call lh_readin(param_name)
87  c     Strong coupling           G = DSQRT(4d0*PI*ALFAS) ! use setting of the param_card.dat @ NLO
 c  
 c     As a rule we first check if a pdf has been chosen in the  
 c     run_card.dat (which has been already read at this stage).  
 c     If there pdfs in the initial state, then the alpha_s(MZ) used  
 c     is set to the corresponding value.  
   
       if(scale.le.1d0)    scale=zmass  
   
       if(lpp(1).ne.0.or.lpp(2).ne.0) then  
           if(asmz .le.0.01d0) asmz =0.118d0  
           if(nloop.eq.0)      nloop=1  
       else  
               asmz=alfas   !value read from the param_card.dat  
           nloop=2  
       endif  
   
       G = DSQRT(4d0*PI*ALPHAS(SCALE)) ! use setting of the param_card.dat @ NLO  
       GG(1) = -G  
       GG(2) = -G  
88  c  c
89  c auxiliary local values  c auxiliary local values
90  c  c
91          wm = sqrt(zmass**2/Two+
92         $     sqrt(zmass**4/Four-Pi/Rt2*alpha/gfermi*zmass**2))
93          sin2w  = One-(wm/zmass)**2
94        cw  = sqrt( One - sin2w )        cw  = sqrt( One - sin2w )
95        ee2 = alpha * Fourpi        ee2 = alpha * Fourpi
96        sw  = sqrt( sin2w )        sw  = sqrt( sin2w )
# Line 117  Line 98 
98        ez  = ee/(sw*cw)        ez  = ee/(sw*cw)
99        ey  = ee*(sw/cw)        ey  = ee*(sw/cw)
100        sc2 = sin2w*( One - sin2w )        sc2 = sin2w*( One - sin2w )
101        v   = Two*wmass*sw/ee   ! the wmass is used to calculate v        v   = Two*wm*sw/ee   ! the wmass is used to calculate v
102        lambda = hmass**2 / (Two * v**2)        lambda = hmass**2 / (Two * v**2)
103  c  c
104  c vector boson couplings  c vector boson couplings
# Line 177  Line 158 
158        ghbot(2) = ghbot(1)        ghbot(2) = ghbot(1)
159    
160        if(mcMS.gt.1d0) then        if(mcMS.gt.1d0) then
161           ghcha(1) = dcmplx( -mbMS/v, Zero )           ghcha(1) = dcmplx( -mcMS/v, Zero )
162        else        else
163           ghcha(1) = dcmplx( Zero, Zero )           ghcha(1) = dcmplx( Zero, Zero )
164        endif        endif
# Line 208  Line 189 
189    
190        awidth = 0d0        awidth = 0d0
191    
192          endif
193    c
194    c     Strong coupling
195    c
196    c     As a rule we first check if a pdf has been chosen in the
197    c     run_card.dat (which has been already read at this stage).
198    c     If there pdfs in the initial state, then the alpha_s(MZ) used
199    c     is set to the corresponding value.
200    
201          GG(1) = -G
202          GG(2) = -G
203    
204  c----------------------------  c----------------------------
205  c end subroutine coupsm  c end subroutine coupsm
206  c----------------------------  c----------------------------
# Line 216  Line 209 
209        return        return
210        end        end
211    
212             subroutine lh_readin             subroutine lh_readin(param_name)
213  c----------------------------------------------------------------------  c----------------------------------------------------------------------
214  c Read the parameters from the lh file  c Read the parameters from the lh file
215  c  c
# Line 225  Line 218 
218  c 3. Fermion masses (pole and MSbar) and widths  c 3. Fermion masses (pole and MSbar) and widths
219  c----------------------------------------------------------------------  c----------------------------------------------------------------------
220        implicit none        implicit none
221    
222  c  c
223  c     parameters  c     parameters
224  c  c
225        integer maxpara        integer maxpara
226        parameter (maxpara=100)        parameter (maxpara=100)
227          double precision  Two, Four, Rt2, Pi
228          parameter( Two = 2.0d0, Four = 4.0d0 )
229          parameter( Rt2   = 1.414213562d0 )
230          parameter( Pi = 3.14159265358979323846d0 )
231  c  c
232  c     local  c     local
233  c  c
234          character*(*) param_name
235        integer npara,l1,l2,id        integer npara,l1,l2,id
236            character*132 buff            character*132 buff
237            real*8 real_value            real*8 real_value
# Line 252  Line 251 
251  c  c
252  c     Common to lh_readin and printout  c     Common to lh_readin and printout
253  c  c
254        double precision  alpha, sin2w, gfermi, alfas        double precision  alpha, gfermi, alfas
255        double precision  mtMS,mbMS,mcMS,mtaMS!MSbar masses        double precision  mtMS,mbMS,mcMS,mtaMS!MSbar masses
256        double precision  Vud,Vus             !CKM matrix elements        double precision  Vud,Vus             !CKM matrix elements
257        common/values/    alpha,sin2w,gfermi,alfas,        common/values/    alpha,gfermi,alfas,
258       &                  mtMS,mbMS,mcMS,mtaMS,       &                  mtMS,mbMS,mcMS,mtaMS,
259       &                  Vud       &                  Vud
260  c  c
# Line 266  Line 265 
265  c     open file  c     open file
266  c  c
267        iunit=14        iunit=14
268        call open_file(iunit,'param_card.dat',fopened)        call open_file_mdl(iunit,param_name,fopened)
269             done=.false.             done=.false.
270    
271         n=0         n=0
# Line 287  Line 286 
286           block_found=.true.           block_found=.true.
287             elseif(buff(1:5).eq.'decay') then             elseif(buff(1:5).eq.'decay') then
288                 n=n+1                 n=n+1
289                 l1=30                 l1=60
290                 if(index(buff,"#").ne.0) l1=index(buff,"#")-1 ! ignore comments                 if(index(buff,"#").ne.0) l1=index(buff,"#")-1 ! ignore comments
291                 read(buff(6:l1),*) ivalue(n),value(n)                 read(buff(6:l1),*) ivalue(n),value(n)
292                 name(n)="decay"                 name(n)="decay"
# Line 305  Line 304 
304            endif            endif
305              if(buff(1:1).ne.'#') then  !if it not a comment              if(buff(1:1).ne.'#') then  !if it not a comment
306                n=n+1                n=n+1
307                l1=30                l1=60
308                if(index(buff,"#").ne.0) l1=index(buff,"#")-1 ! ignore comments                if(index(buff,"#").ne.0) l1=index(buff,"#")-1 ! ignore comments
309  c  c
310  c  WARNING:... not all blocks have the same sintax!! You need to change it  c  WARNING:... not all blocks have the same sintax!! You need to change it
# Line 337  Line 336 
336         call set_it(n,ivalue,value,name,4,bn,zmass,91.188d0)         call set_it(n,ivalue,value,name,4,bn,zmass,91.188d0)
337         call set_it(n,ivalue,value,name,6,bn,tmass,174.3d0)         call set_it(n,ivalue,value,name,6,bn,tmass,174.3d0)
338         call set_it(n,ivalue,value,name,7,bn,lmass,1.777d0)         call set_it(n,ivalue,value,name,7,bn,lmass,1.777d0)
            bn="mgsmparam"  
        call set_it(n,ivalue,value,name,1,bn,sin2w,0.2312d0)  
        call set_it(n,ivalue,value,name,2,bn,wmass,80.419d0)  
339         bn="mgyukawa"         bn="mgyukawa"
340         call set_it(n,ivalue,value,name,4,bn,mcMS,1.25d0)         call set_it(n,ivalue,value,name,4,bn,mcMS,1.25d0)
341         call set_it(n,ivalue,value,name,5,bn,mbMS,4.2d0)         call set_it(n,ivalue,value,name,5,bn,mbMS,4.2d0)
# Line 354  Line 350 
350         call set_it(n,ivalue,value,name,15,bn,lmass,lmass*1d0)         call set_it(n,ivalue,value,name,15,bn,lmass,lmass*1d0)
351         call set_it(n,ivalue,value,name,25,bn,hmass,120d0)         call set_it(n,ivalue,value,name,25,bn,hmass,120d0)
352         call set_it(n,ivalue,value,name,23,bn,zmass,zmass*1d0)         call set_it(n,ivalue,value,name,23,bn,zmass,zmass*1d0)
353         call set_it(n,ivalue,value,name,24,bn,wmass,wmass*1d0)         call set_it(n,ivalue,value,name,24,bn,wmass,sqrt(zmass**2/Two+
354         $     sqrt(zmass**4/Four-Pi/Rt2*alpha/gfermi*zmass**2)))
355         bn="decay"         bn="decay"
356         call set_it(n,ivalue,value,name,6,bn,twidth,1.5083d0)         call set_it(n,ivalue,value,name,6,bn,twidth,1.5083d0)
357         call set_it(n,ivalue,value,name,25,bn,hwidth,0.0037d0)         call set_it(n,ivalue,value,name,25,bn,hwidth,0.0037d0)
# Line 478  Line 475 
475        buff=temp        buff=temp
476        end        end
477    
478              subroutine open_file_mdl(lun,filename,fopened)
479    c***********************************************************************
480    c     opens file input-card.dat in current directory or above
481    c***********************************************************************
482          implicit none
483    c
484    c     Arguments
485    c
486          integer lun
487          logical fopened
488          character*(*) filename
489          character*90  tempname
490          integer fine
491          integer dirup,i
492    
493    c-----
494    c  Begin Code
495    c-----
496    c
497    c     first check that we will end in the main directory
498    c
499          tempname=filename
500          fine=index(tempname,' ')
501          if(fine.eq.0) fine=len(tempname)
502          tempname=tempname(1:fine)
503    c
504    c         if I have to read a card
505    c
506          if(index(filename,"_card").gt.0) then
507             tempname='./Cards/'//tempname
508          endif
509    
510    
511          fopened=.false.
512          do i=0,5
513             open(unit=lun,file=tempname,status='old',ERR=30)
514             fopened=.true.
515             write(*,*) 'read model file',tempname
516             exit
517     30      tempname='../'//tempname
518             if (i.eq.5)then
519                write(*,*) 'Warning: file ',tempname,' is not correct'
520                stop
521             endif
522          enddo
523    
524    
525          return
526          end
527    
528    
529    

Legend:
Removed from v.1.1.1.1  
changed lines
  Added in v.1.16

Mail to administrator
ViewVC Help
Powered by ViewVC 1.0.0