]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HERWIG/src/hwubst.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / hwubst.f
1
2 CDECK  ID>, HWUBST.
3
4 *CMZ :-        -18/10/93  10.21.56  by  Mike Seymour
5
6 *-- Author :    Mike Seymour
7
8 C-----------------------------------------------------------------------
9
10       SUBROUTINE HWUBST(IOPT)
11
12 C-----------------------------------------------------------------------
13
14 C     BOOST THE ENTIRE EVENT RECORD TO (IOPT=1) OR FROM (IOPT=0) ITS
15
16 C     CENTRE-OF-MASS FRAME, WITH INCOMING HADRONS ON Z-AXIS
17
18 C-----------------------------------------------------------------------
19
20       INCLUDE 'HERWIG61.INC'
21
22       DOUBLE PRECISION PBOOST(5),RBOOST(3,3)
23
24       INTEGER IOPT,IHEP,BOOSTD,IHAD
25
26       SAVE BOOSTD,PBOOST,RBOOST
27
28       DATA BOOSTD/-1/
29
30       IF (IERROR.NE.0) RETURN
31
32       IF (IOPT.EQ.1) THEN
33
34 C---FIND FIRST INCOMING HADRON
35
36         IHAD=1
37
38         IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
39
40 C---IF WE'RE ALREADY IN THE RIGHT FRAME, DON'T DO ANYTHING
41
42         IF (PHEP(1,3)**2+PHEP(2,3)**2+PHEP(3,3)**2.EQ.ZERO .AND.
43
44      &      PHEP(1,IHAD)**2+PHEP(2,IHAD)**2.EQ.ZERO) RETURN
45
46 C---FIND AND APPLY BOOST
47
48         CALL HWVEQU(5,PHEP(1,3),PBOOST)
49
50         DO 100 IHEP=1,NHEP
51
52           CALL HWULOF(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
53
54           CALL HWULOF(PBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
55
56  100    CONTINUE
57
58         CALL HWULOF(PBOOST,VTXPIP,VTXPIP)
59
60 C---FIND AND APPLY ROTATION TO PUT IT ON Z-AXIS
61
62         CALL HWUROT(PHEP(1,IHAD),ONE,ZERO,RBOOST)
63
64         DO 110 IHEP=1,NHEP
65
66           CALL HWUROF(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
67
68           CALL HWUROF(RBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
69
70  110    CONTINUE
71
72         CALL HWUROF(RBOOST,VTXPIP,VTXPIP)
73
74 C---ENSURE THAT WE ONLY EVER UNBOOST THE SAME EVENT THAT WE BOOSTED
75
76 C   (BEARING IN MIND THAT NWGTS IS UPDATED AFTER GENERATING THE WEIGHT)
77
78         BOOSTD=NWGTS+1
79
80       ELSEIF (IOPT.EQ.0) THEN
81
82         IF (BOOSTD.NE.NWGTS) RETURN
83
84 C---UNDO ROTATION AND BOOST
85
86         DO 200 IHEP=1,NHEP
87
88           CALL HWUROB(RBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
89
90           CALL HWULOB(PBOOST,PHEP(1,IHEP),PHEP(1,IHEP))
91
92           CALL HWUROB(RBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
93
94           CALL HWULB4(PBOOST,VHEP(1,IHEP),VHEP(1,IHEP))
95
96  200    CONTINUE
97
98       ENDIF
99
100       END