Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-08-05 08:21:10

0001  
0002 C*********************************************************************
0003  
0004 C...PYFRAM
0005 C...Performs transformations between different coordinate frames.
0006  
0007       SUBROUTINE PYFRAM(IFRAME)
0008  
0009 C...Double precision and integer declarations.
0010       IMPLICIT DOUBLE PRECISION(A-H, O-Z)
0011       IMPLICIT INTEGER(I-N)
0012       INTEGER PYK,PYCHGE,PYCOMP
0013 C...Commonblocks.
0014       COMMON/PYDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
0015       COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
0016       COMMON/PYINT1/MINT(400),VINT(400)
0017       SAVE /PYDAT1/,/PYPARS/,/PYINT1/
0018  
0019 C...Check that transformation can and should be done.
0020       IF(IFRAME.EQ.1.OR.IFRAME.EQ.2.OR.(IFRAME.EQ.3.AND.
0021      &MINT(91).EQ.1)) THEN
0022         IF(IFRAME.EQ.MINT(6)) RETURN
0023       ELSE
0024         WRITE(MSTU(11),5000) IFRAME,MINT(6)
0025         RETURN
0026       ENDIF
0027  
0028       IF(MINT(6).EQ.1) THEN
0029 C...Transform from fixed target or user specified frame to
0030 C...overall CM frame.
0031         CALL PYROBO(0,0,0D0,0D0,-VINT(8),-VINT(9),-VINT(10))
0032         CALL PYROBO(0,0,0D0,-VINT(7),0D0,0D0,0D0)
0033         CALL PYROBO(0,0,-VINT(6),0D0,0D0,0D0,0D0)
0034       ELSEIF(MINT(6).EQ.3) THEN
0035 C...Transform from hadronic CM frame in DIS to overall CM frame.
0036         CALL PYROBO(0,0,-VINT(221),-VINT(222),-VINT(223),-VINT(224),
0037      &  -VINT(225))
0038       ENDIF
0039  
0040       IF(IFRAME.EQ.1) THEN
0041 C...Transform from overall CM frame to fixed target or user specified
0042 C...frame.
0043         CALL PYROBO(0,0,VINT(6),VINT(7),VINT(8),VINT(9),VINT(10))
0044       ELSEIF(IFRAME.EQ.3) THEN
0045 C...Transform from overall CM frame to hadronic CM frame in DIS.
0046         CALL PYROBO(0,0,0D0,0D0,VINT(223),VINT(224),VINT(225))
0047         CALL PYROBO(0,0,0D0,VINT(222),0D0,0D0,0D0)
0048         CALL PYROBO(0,0,VINT(221),0D0,0D0,0D0,0D0)
0049       ENDIF
0050  
0051 C...Set information about new frame.
0052       MINT(6)=IFRAME
0053       MSTI(6)=IFRAME
0054  
0055  5000 FORMAT(1X,'Error: illegal values in subroutine PYFRAM.',1X,
0056      &'No transformation performed.'/1X,'IFRAME =',1X,I5,'; MINT(6) =',
0057      &1X,I5)
0058  
0059       RETURN
0060       END