~maddevelopers/mg5amcnlo/3.0.2

« back to all changes in this revision

Viewing changes to vendor/IREGI/src/kinematics.f90

  • Committer: Marco Zaro
  • Date: 2014-01-27 16:54:10 UTC
  • mfrom: (78.124.55 MG5_aMC_2.1)
  • Revision ID: marco.zaro@gmail.com-20140127165410-5lma8c2hzbzm426j
merged with lp:~maddevelopers/madgraph5/MG5_aMC_2.1 r 267

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
MODULE kinematics
 
3
USE global
 
4
CONTAINS
 
5
  FUNCTION cscalarprod(p1,p2)
 
6
    IMPLICIT NONE
 
7
    COMPLEX(KIND(1d0))::cscalarprod
 
8
    COMPLEX(KIND(1d0)),DIMENSION(0:3),INTENT(IN)::p1,p2
 
9
!    REAL(KIND(1d0)),PARAMETER::EPS2=1d-6
 
10
!    REAL(KIND(1d0))::max
 
11
    cscalarprod=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)
 
12
!    max=ABS(p1(0)*p2(0))+ABS(p1(1)*p2(1))+ABS(p1(2)*p2(2))+ABS(p1(3)*p2(3))
 
13
!    IF(ABS(cscalarprod/max).LT.EPS2)cscalarprod=DCMPLX(0d0)
 
14
  END FUNCTION cscalarprod
 
15
 
 
16
  FUNCTION scalarprod(p1,p2)
 
17
    IMPLICIT NONE
 
18
    REAL(KIND(1d0))::scalarprod
 
19
    REAL(KIND(1d0)),DIMENSION(0:3),INTENT(IN)::p1,p2
 
20
!    REAL(KIND(1d0)),PARAMETER::EPS2=1d-6
 
21
!    REAL(KIND(1d0))::max
 
22
    scalarprod=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)
 
23
    IF(check.OR.ONSHELL_IREGI)THEN
 
24
       CALL makeonshell(nmass,massref(1:nmass),scalarprod)
 
25
!    ELSE
 
26
!       IF(ABS(scalarprod/mu_R_IREGI**2).LT.1d-6)scalarprod=0d0
 
27
    ENDIF
 
28
!    max=ABS(p1(0)*p2(0))+ABS(p1(1)*p2(1))+ABS(p1(2)*p2(2))+ABS(p1(3)*p2(3))
 
29
!    IF(ABS(scalarprod/max).LT.EPS2)scalarprod=0d0
 
30
  END FUNCTION scalarprod
 
31
 
 
32
 ! this is the ad-hoc function only for testing 
 
33
  SUBROUTINE makeonshell(n,mt2,ma)
 
34
    IMPLICIT NONE
 
35
    INTEGER,INTENT(IN)::n
 
36
    REAL(KIND(1d0)),INTENT(INOUT)::ma
 
37
    REAL(KIND(1d0)),DIMENSION(n),INTENT(IN)::mt2
 
38
    INTEGER::i
 
39
    IF(n.GT.0)THEN
 
40
       IF(ABS(ma/mt2(1)).LT.ZEROTHR_IREGI)THEN
 
41
          ma=0d0
 
42
          RETURN
 
43
       ENDIF
 
44
       DO i=1,n
 
45
          IF(ABS(ma-mt2(i))/mt2(i).LT.ZEROTHR_IREGI)THEN
 
46
             ma=mt2(i)
 
47
             RETURN
 
48
          ENDIF
 
49
       ENDDO
 
50
    ELSE
 
51
       IF(ABS(ma).LT.1d-3)THEN
 
52
          ma=0d0
 
53
          RETURN
 
54
       ENDIF
 
55
    ENDIF
 
56
    RETURN
 
57
  END SUBROUTINE makeonshell
 
58
END MODULE kinematics