2
C**************************************************************************
3
C THIS IS THE DRIVER FOR CHECKING THE STANDALONE MATRIX ELEMENT.
4
C IT USES A SIMPLE PHASE SPACE GENERATOR
5
C Fabio Maltoni - 3rd Febraury 2007
6
C Modified Version for the decay Package (Pierre Artoisenet)
7
C**************************************************************************
17
C--- the include file with the values of the parameters and masses
19
C--- integer nexternal ! number particles (incoming+outgoing) in the me
20
INCLUDE "nexternal.inc"
22
REAL*8 PMASS(NEXTERNAL)
24
INCLUDE "ngraphs.inc" !how many diagrams (could be useful to know...)
26
DOUBLE PRECISION AMP2(n_max_cg)
34
REAL*8 P(0:3,NEXTERNAL) ! four momenta. Energy is the zeroth component.
35
REAL*8 SQRTS,MATELEM ! sqrt(s)= center of mass energy
36
REAL*8 PIN(0:3), POUT(0:3)
37
CHARACTER*120 BUFF(NEXTERNAL)
38
CHARACTER*200 param_card
47
pi = 3.141592653589793d0
52
C--- INITIALIZATION CALLS
54
c--- Call to initialize the values of the couplings, masses and widths
55
c used in the evaluation of the matrix element. The primary parameters of the
56
c models are read from Cards/param_card.dat. The secondary parameters are calculated
57
c in Source/MODEL/couplings.f. The values are stored in common blocks that are listed
60
call setpara(param_card) !first call to setup the paramaters
62
c include "../parameters.inc"
64
include "pmass.inc" !set up masses
66
c read phase-space point (main loop)
67
1 read(*,*) new_alphas
68
G = 2* DSQRT(new_alphas*pi)
69
call UPDATE_AS_PARAM()
71
read (*,*) P(0,i),P(1,i),P(2,i),P(3,i)
77
c Now we can call the matrix element!
80
CALL SMATRIX(P,MATELEM)
83
c write (*,*) "Matrix element = ", MATELEM, " GeV^",-(2*nexternal-8)
84
c write (*,*) "-----------------------------------------------------------------------------"
95
double precision function dot(p1,p2)
96
C****************************************************************************
97
C 4-Vector Dot product
98
C****************************************************************************
100
double precision p1(0:3),p2(0:3)
101
dot=p1(0)*p2(0)-p1(1)*p2(1)-p1(2)*p2(2)-p1(3)*p2(3)