]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HERWIG/src/hwubst.f
Coding rule violations corrected.
[u/mrichter/AliRoot.git] / HERWIG / src / hwubst.f
CommitLineData
3820ca8e 1
2CDECK ID>, HWUBST.
3
4*CMZ :- -18/10/93 10.21.56 by Mike Seymour
5
6*-- Author : Mike Seymour
7
8C-----------------------------------------------------------------------
9
10 SUBROUTINE HWUBST(IOPT)
11
12C-----------------------------------------------------------------------
13
14C BOOST THE ENTIRE EVENT RECORD TO (IOPT=1) OR FROM (IOPT=0) ITS
15
16C CENTRE-OF-MASS FRAME, WITH INCOMING HADRONS ON Z-AXIS
17
18C-----------------------------------------------------------------------
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
34C---FIND FIRST INCOMING HADRON
35
36 IHAD=1
37
38 IF (JDAHEP(1,IHAD).NE.0) IHAD=JDAHEP(1,IHAD)
39
40C---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
46C---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
60C---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
74C---ENSURE THAT WE ONLY EVER UNBOOST THE SAME EVENT THAT WE BOOSTED
75
76C (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
84C---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