curr_karls.f

00001       SUBROUTINE CURR_KARLS(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR)
00002       INTEGER MNUM,I
00003       REAL  PIM1(4),PIM2(4),PIM3(4),PIM4(4)
00004       COMPLEX HADCUR(4)
00005       REAL*8 QQ2,Q1(4),Q2(4),Q3(4),Q4(4)
00006       COMPLEX*16 HADR(4)
00007 
00008       LOGICAL INIT
00009       DATA INIT /.TRUE./
00010       SAVE INIT
00011 
00012       IF (INIT) THEN
00013          CALL had1_init
00014          INIT = .FALSE.
00015       ENDIF
00016 
00017       IF (MNUM.EQ.1) THEN  !  PI- PI- PI+ PI0
00018          Q1(1)=PIM1(4) ! PI-
00019          Q2(1)=PIM2(4) ! PI-
00020          Q3(1)=PIM3(4) ! PI0
00021          Q4(1)=PIM4(4) ! PI+
00022          DO I=1,3
00023             Q1(1+I)=PIM1(I)       
00024             Q2(1+I)=PIM2(I)       
00025             Q3(1+I)=PIM3(I)       
00026             Q4(1+I)=PIM4(I)       
00027          ENDDO
00028          QQ2=(Q1(1)+Q2(1)+Q3(1)+Q4(1))**2
00029          DO I=2,4
00030             QQ2=QQ2-(Q1(I)+Q2(I)+Q3(I)+Q4(I))**2
00031          ENDDO
00032 C  Tomasz Pierzchala : in HAD4() position of PI+ and Pi0 is changed 
00033 C                      to be in correct order according to TAUOLA routines.
00034 C         CALL HAD4(QQ2,Q1,Q2,Q3,Q4,HADR)
00035 C
00036           CALL HAD4(QQ2,Q1,Q2,Q4,Q3,HADR)
00037 C         
00038       ELSEIF(MNUM.EQ.2) THEN ! PI0 PI0 PI0 PI-   
00039          Q1(1)=PIM1(4) ! PI0
00040          Q2(1)=PIM2(4) ! PI0
00041          Q3(1)=PIM3(4) ! PI0
00042          Q4(1)=PIM4(4) ! PI-
00043          DO I=1,3
00044             Q1(1+I)=PIM1(I)       
00045             Q2(1+I)=PIM2(I)       
00046             Q3(1+I)=PIM3(I)       
00047             Q4(1+I)=PIM4(I)       
00048          ENDDO
00049          QQ2=(Q1(1)+Q2(1)+Q3(1)+Q4(1))**2
00050          DO I=2,4
00051             QQ2=QQ2-(Q1(I)+Q2(I)+Q3(I)+Q4(I))**2
00052          ENDDO
00053          CALL HAD3(QQ2,Q1,Q2,Q3,Q4,HADR)
00054 C         
00055       ELSE
00056          WRITE(*,*)' WRONG PARAMITER IN CURR_CPC; MNUM=',MNUM
00057          STOP
00058       ENDIF
00059 C
00060       HADCUR(4)=HADR(1)
00061       DO I=1,3
00062          HADCUR(I)=HADR(I+1)
00063       ENDDO
00064       RETURN
00065       END
00066       
Generated on Sun Oct 20 20:24:08 2013 for C++InterfacetoTauola by  doxygen 1.6.3