Double_t 4-momentum
[u/mrichter/AliRoot.git] / PYTHIA6 / pdf_alice.F
1 C...  ALICE interface to PDFLIB with possibility to select nuclear structure 
2 C...  functions. 
3 C...  
4 C...  The MSTP array in the PYPARS common block is used to enable and 
5 C...  select the nuclear structure functions. 
6 C...  MSTP(52)  : (D=1) choice of proton and nuclear structure-function library
7 C...          =1: internal PYTHIA acording to MSTP(51) 
8 C...          =2: PDFLIB proton  s.f., with MSTP(51)  = 1000xNGROUP+NSET
9 C...              MSTP( 51)  = 1000xNPGROUP+NPSET
10 C...              MSTP(151)  = 1000xNAGROUP+NASET
11 C...  MSTP(192) : Mass number of nucleus side 1
12 C...  MSTP(193) : Mass number of nucleus side 2
13 C...
14 C...
15 C...  MINT(124) : side (1 or 2)
16
17
18       SUBROUTINE PDFSET_ALICE(PARM, VALUE)
19 C...
20       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
21       IMPLICIT INTEGER(I-N)
22 C...Interface to PDFLIB.
23       COMMON/LW50512/QCDL4,QCDL5
24       SAVE /LW50512/
25       DOUBLE PRECISION QCDL4,QCDL5
26       COMMON/LW50513/XMIN,XMAX,Q2MIN,Q2MAX
27       SAVE /LW50513/
28       DOUBLE PRECISION XMIN,XMAX,Q2MIN,Q2MAX
29 C...
30       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
31       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)  
32       DOUBLE PRECISION VALUE(20)
33       CHARACTER*20 PARM(20)
34       write(6,*) MSTP(52)
35       write(6,*) PARM
36       write(6,*) VALUE
37
38       IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN
39          PARM(5)='NATYPE'
40          VALUE(5)=4
41          PARM(6)='NAGROUP'
42          VALUE(6)=MSTP(191)/1000
43          PARM(7)='NASET'
44          VALUE(7)=MOD(MSTP(191),1000)
45          CALL PDFSET(PARM,VALUE,
46      >        MSTU(11),MSTP(51),MSTP(53),MSTP(55),
47      >        QCDL4,QCDL5,
48      >        XMIN,XMAX,Q2MIN,Q2MAX)
49          IF (MSTP(194) .EQ. 0) THEN 
50             CALL SETLHAPARM("EKS98")
51          ELSE
52             CALL SETLHAPARM("EPS08")
53          ENDIF
54       ELSE 
55          write(6,*) "-> pdfset"
56          CALL PDFSET(PARM,VALUE,
57      >        MSTU(11),MSTP(51),MSTP(53),MSTP(55),
58      >        QCDL4,QCDL5,
59      >        XMIN,XMAX,Q2MIN,Q2MAX)
60       ENDIF
61       write(6,*) "done"
62       END
63
64
65
66       SUBROUTINE STRUCTM_ALICE
67      +     (XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
68 C...
69       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
70       IMPLICIT INTEGER(I-N)
71       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
72       COMMON/PYINT1/MINT(400),VINT(400)
73 C      write(6,*) "structm_alice->"
74       IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN
75          A=MSTP(191+MINT(124))
76 C         write(6,*) mint(124), "-> structa ", A
77           CALL STRUCTA(XX,QQ,A,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
78       ELSE
79 C         write(6,*) mint(124), "-> structm "
80          CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL)
81       ENDIF
82       END
83
84