]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PYTHIA/pythia/pyfram.F
This commit was generated by cvs2svn to compensate for changes in r2,
[u/mrichter/AliRoot.git] / PYTHIA / pythia / pyfram.F
diff --git a/PYTHIA/pythia/pyfram.F b/PYTHIA/pythia/pyfram.F
new file mode 100644 (file)
index 0000000..c192659
--- /dev/null
@@ -0,0 +1,54 @@
+C*********************************************************************
+      SUBROUTINE PYFRAM(IFRAME)
+C...Performs transformations between different coordinate frames.
+      COMMON/LUDAT1/MSTU(200),PARU(200),MSTJ(200),PARJ(200)
+      COMMON/PYPARS/MSTP(200),PARP(200),MSTI(200),PARI(200)
+      COMMON/PYINT1/MINT(400),VINT(400)
+      SAVE /LUDAT1/
+      SAVE /PYPARS/,/PYINT1/
+C...Check that transformation can and should be done.
+      IF(IFRAME.EQ.1.OR.IFRAME.EQ.2.OR.(IFRAME.EQ.3.AND.
+     &MINT(91).EQ.1)) THEN
+        IF(IFRAME.EQ.MINT(6)) RETURN
+      ELSE
+        WRITE(MSTU(11),5000) IFRAME,MINT(6)
+        RETURN
+      ENDIF
+      IF(MINT(6).EQ.1) THEN
+C...Transform from fixed target or user specified frame to
+C...overall CM frame.
+        CALL LUROBO(0.,0.,-VINT(8),-VINT(9),-VINT(10))
+        CALL LUROBO(0.,-VINT(7),0.,0.,0.)
+        CALL LUROBO(-VINT(6),0.,0.,0.,0.)
+      ELSEIF(MINT(6).EQ.3) THEN
+C...Transform from hadronic CM frame in DIS to overall CM frame.
+        CALL LUROBO(-VINT(221),-VINT(222),-VINT(223),-VINT(224),
+     &  -VINT(225))
+      ENDIF
+      IF(IFRAME.EQ.1) THEN
+C...Transform from overall CM frame to fixed target or user specified
+C...frame.
+        CALL LUROBO(VINT(6),VINT(7),VINT(8),VINT(9),VINT(10))
+      ELSEIF(IFRAME.EQ.3) THEN
+C...Transform from overall CM frame to hadronic CM frame in DIS.
+        CALL LUROBO(0.,0.,VINT(223),VINT(224),VINT(225))
+        CALL LUROBO(0.,VINT(222),0.,0.,0.)
+        CALL LUROBO(VINT(221),0.,0.,0.,0.)
+      ENDIF
+C...Set information about new frame.
+      MINT(6)=IFRAME
+      MSTI(6)=IFRAME
+ 5000 FORMAT(1X,'Error: illegal values in subroutine PYFRAM.',1X,
+     &'No transformation performed.'/1X,'IFRAME =',1X,I5,'; MINT(6) =',
+     &1X,I5)
+      RETURN
+      END