]>
Commit | Line | Data |
---|---|---|
fe4da5cc | 1 | |
2 | C********************************************************************* | |
3 | ||
4 | SUBROUTINE PYFRAM(IFRAME) | |
5 | ||
6 | C...Performs transformations between different coordinate frames. | |
7 | COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200) | |
8 | COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200) | |
9 | COMMON/PYINT1/MINT(400),VINT(400) | |
10 | SAVE /LUDAT1/ | |
11 | SAVE /PYPARS/,/PYINT1/ | |
12 | ||
13 | C...Check that transformation can and should be done. | |
14 | IF(IFRAME.EQ.1.OR.IFRAME.EQ.2.OR.(IFRAME.EQ.3.AND. | |
15 | &MINT(91).EQ.1)) THEN | |
16 | IF(IFRAME.EQ.MINT(6)) RETURN | |
17 | ELSE | |
18 | WRITE(MSTU(11),5000) IFRAME,MINT(6) | |
19 | RETURN | |
20 | ENDIF | |
21 | ||
22 | IF(MINT(6).EQ.1) THEN | |
23 | C...Transform from fixed target or user specified frame to | |
24 | C...overall CM frame. | |
25 | CALL LUROBO(0.,0.,-VINT(8),-VINT(9),-VINT(10)) | |
26 | CALL LUROBO(0.,-VINT(7),0.,0.,0.) | |
27 | CALL LUROBO(-VINT(6),0.,0.,0.,0.) | |
28 | ELSEIF(MINT(6).EQ.3) THEN | |
29 | C...Transform from hadronic CM frame in DIS to overall CM frame. | |
30 | CALL LUROBO(-VINT(221),-VINT(222),-VINT(223),-VINT(224), | |
31 | & -VINT(225)) | |
32 | ENDIF | |
33 | ||
34 | IF(IFRAME.EQ.1) THEN | |
35 | C...Transform from overall CM frame to fixed target or user specified | |
36 | C...frame. | |
37 | CALL LUROBO(VINT(6),VINT(7),VINT(8),VINT(9),VINT(10)) | |
38 | ELSEIF(IFRAME.EQ.3) THEN | |
39 | C...Transform from overall CM frame to hadronic CM frame in DIS. | |
40 | CALL LUROBO(0.,0.,VINT(223),VINT(224),VINT(225)) | |
41 | CALL LUROBO(0.,VINT(222),0.,0.,0.) | |
42 | CALL LUROBO(VINT(221),0.,0.,0.,0.) | |
43 | ENDIF | |
44 | ||
45 | C...Set information about new frame. | |
46 | MINT(6)=IFRAME | |
47 | MSTI(6)=IFRAME | |
48 | ||
49 | 5000 FORMAT(1X,'Error: illegal values in subroutine PYFRAM.',1X, | |
50 | &'No transformation performed.'/1X,'IFRAME =',1X,I5,'; MINT(6) =', | |
51 | &1X,I5) | |
52 | ||
53 | RETURN | |
54 | END |