From 2eef49c001b3c8ffa5c6cc35871f984ebe16a075 Mon Sep 17 00:00:00 2001 From: morsch Date: Mon, 18 Sep 2000 10:47:15 +0000 Subject: [PATCH] Add pdfset_alice and structm_alice handle calls to the nuclear structure function package of PDF is this is required by the user. --- PYTHIA6/Makefile | 2 +- PYTHIA6/pdf_alice.F | 64 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 65 insertions(+), 1 deletion(-) create mode 100644 PYTHIA6/pdf_alice.F diff --git a/PYTHIA6/Makefile b/PYTHIA6/Makefile index c479b4b2ac8..7314bc53ad2 100644 --- a/PYTHIA6/Makefile +++ b/PYTHIA6/Makefile @@ -19,7 +19,7 @@ COBJS = $(patsubst %.c,tgt_$(ALICE_TARGET)/%.o,$(CSRCS)) ##### MACROS ##### -FSRCS = pythia6150.F pythia6_common_block_address.F \ +FSRCS = pythia6150.F pythia6_common_block_address.F pdf_alice.F\ tpythia6_called_from_cc.F FOBJS = $(patsubst %.F,tgt_$(ALICE_TARGET)/%.o,$(FSRCS)) diff --git a/PYTHIA6/pdf_alice.F b/PYTHIA6/pdf_alice.F new file mode 100644 index 00000000000..6e6e7546cb4 --- /dev/null +++ b/PYTHIA6/pdf_alice.F @@ -0,0 +1,64 @@ +C... ALICE interface to PDFLIB with possibility to select nuclear structure +C... functions. +C... +C... The MSTP array in the PYPARS common block is used to enable and +C... select the nuclear structure functions. +C... MSTP(52) : (D=1) choice of proton and nuclear structure-function library +C... =1: internal PYTHIA acording to MSTP(51) +C... =2: PDFLIB proton s.f., with MSTP(51) = 1000xNGROUP+NSET +C... MSTP( 51) = 1000xNPGROUP+NPSET +C... MSTP(151) = 1000xNAGROUP+NASET +C... MSTP(192) : Mass number of nucleus side 1 +C... MSTP(193) : Mass number of nucleus side 2 +C... +C... +C... MINT(124) : side (1 or 2) + + + SUBROUTINE PDFSET_ALICE(PARM, VALUE) +C... + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) + DOUBLE PRECISION VALUE(20) + CHARACTER*20 PARM(20) + write(6,*) MSTP(52) + write(6,*) PARM + write(6,*) VALUE + + IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN + PARM(5)='NATYPE' + VALUE(5)=4 + PARM(6)='NAGROUP' + VALUE(6)=MSTP(191)/1000 + PARM(7)='NASET' + VALUE(7)=MOD(MSTP(191),1000) + CALL PDFSET(PARM,VALUE) + ELSE + write(6,*) "-> pdfset" + CALL PDFSET(PARM,VALUE) + ENDIF + write(6,*) "done" + END + + + + SUBROUTINE STRUCTM_ALICE + + (XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL) +C... + IMPLICIT DOUBLE PRECISION(A-H, O-Z) + IMPLICIT INTEGER(I-N) + COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) + COMMON/PYINT1/MINT(400),VINT(400) +C write(6,*) "structm_alice->" + IF (MSTP(192) .GT. 0 .AND. MSTP(193) .GT. 0) THEN + A=MSTP(191+MINT(124)) +C write(6,*) mint(124), "-> structa ", A + CALL STRUCTA(XX,QQ,A,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL) + ELSE +C write(6,*) mint(124), "-> structm " + CALL STRUCTM(XX,QQ,UPV,DNV,USEA,DSEA,STR,CHM,BOT,TOP,GL) + ENDIF + END + + -- 2.39.3