]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HBTAN/ltran12.F
Memory leak removed
[u/mrichter/AliRoot.git] / HBTAN / ltran12.F
CommitLineData
ff4431bb 1
2 SUBROUTINE ltran12
3C
4
5c SUBROUTINE TRANS(icrf,irot)
6C==> TRANSformation to the Co-moving frame (icrf>0) and
7C Rotation to the system where (Pt || X),(irot=1).
8C-FSI ***************************************************
f5ab1a71 9 IMPLICIT REAL*8 (A-H,O-Z)
ff4431bb 10 COMMON/FSI_MOM/P1X,P1Y,P1Z,E1,P1, ! momenta in NRF
f5ab1a71 11 1 P2X,P2Y,P2Z,E2,P2
ff4431bb 12 COMMON/FSI_COOR/X1,Y1,Z1,T1,R1, ! 4-coord. of emis.
13 1 X2,Y2,Z2,T2,R2 ! points in NRF
14 COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, ! momenta in PRF
f5ab1a71 15 1 X,Y,Z,T,RP,RPS
16 COMMON/FSI_POC/AMN,AM1,AM2,CN,C1,C2,AC1,AC2
17 COMMON/FSI_P12/P12X,P12Y,P12Z,E12,P12,AM12,EPM
ff4431bb 18 COMMON/FSI_CVK/V,CVK
19C-FSI ***************************************************
20 COMMON /PAIR/P12T,V12Z,GAMZ,V12T,CPHI,SPHI
f5ab1a71 21
ff4431bb 22 icrf=1
23 irot=1
24
25C---> Particle energies ---------
f5ab1a71 26 P1S=P1X*P1X+P1Y*P1Y+P1Z*P1Z
27 P2S=P2X*P2X+P2Y*P2Y+P2Z*P2Z
f5ab1a71 28 E1=DSQRT(AM1*AM1+P1S)
29 E2=DSQRT(AM2*AM2+P2S)
ff4431bb 30C---> Pair parameters -----------
31 E12=E1+E2 ! Energy
32 P12X=P1X+P2X ! Px
33 P12Y=P1Y+P2Y ! Py
34 P12Z=P1Z+P2Z ! Pz
35 P12S=P12X**2+P12Y**2+P12Z**2
36 P12 =DSQRT(P12S)! Momentum
37 V12 =P12/E12 ! Velocity
38 CTH =P12Z/P12 ! cos(theta)
39 STH =DSQRT(1.D0-CTH**2) !sin
40 V12Z=V12*CTH ! Longit. V
41 GAMZ=1.D0/DSQRT(1.D0-V12Z**2)
42C-- V12T=V12*STH ! Transv. V in CMS (not needed)
43 P12TS=P12X*P12X+P12Y*P12Y
44 P12T=DSQRT(P12TS) !Pt
45C===> Azimuthal rotation (Pt||X) ============
46 IF(V12T.NE.0.D0) THEN
47 CPHI=P12X/P12T ! cos(phi)
48 SPHI=P12Y/P12T ! sin(phi)
49 IF((irot.eq.1)) THEN
50 CALL ROT8(P1X,P1Y,SPHI,CPHI,P1X,P1Y)
51 CALL ROT8(P2X,P2Y,SPHI,CPHI,P2X,P2Y)
52 CALL ROT8(X1,Y1,SPHI,CPHI,X1,Y1)
53 CALL ROT8(X2,Y2,SPHI,CPHI,X2,Y2)
54 END IF
55 ELSE ! Rotation impossible
56 CPHI=2.D0 ! to avoid
57 SPHI=2.D0 ! using it !
58 END IF
59C===> Co-moving ref. frame ============
60 IF(icrf.gt.0) THEN
61 CALL LTR8(P1Z,E1,V12Z,GAMZ,P1Z,E1a)
62 CALL LTR8(P2Z,E2,V12Z,GAMZ,P2Z,E2a)
63 P1S=P1X*P1X+P1Y*P1Y+P1Z*P1Z
64 P2S=P2X*P2X+P2Y*P2Y+P2Z*P2Z
65 E1=DSQRT(AM1*AM1+P1S)
66 E2=DSQRT(AM2*AM2+P2S)
67 CALL LTR8(Z1,T1,V12Z,GAMZ,Z1,T1)
68 CALL LTR8(Z2,T2,V12Z,GAMZ,Z2,T2)
69 END IF
70C===> Pair reference frame ============
71 P1=DSQRT(P1S)
72 P2=DSQRT(P2S)
f5ab1a71 73 E12=E1+E2
74 P12X=P1X+P2X
75 P12Y=P1Y+P2Y
76 P12Z=P1Z+P2Z
77 P12S=P12X**2+P12Y**2+P12Z**2
ff4431bb 78 P12 =DSQRT(P12S)
79 AM12S=E12*E12-P12S
80 AM12=DSQRT(AM12S)
f5ab1a71 81 EPM=E12+AM12
f5ab1a71 82 P112=P1X*P12X+P1Y*P12Y+P1Z*P12Z
83 H1=(P112/EPM-E1)/AM12
84 PPX=P1X+P12X*H1
85 PPY=P1Y+P12Y*H1
86 PPZ=P1Z+P12Z*H1
87 EE=(E12*E1-P112)/AM12
88 AKS=EE**2-AM1**2
89 AK=DSQRT(AKS)
ff4431bb 90 CVK=(P12X*PPX+P12Y*PPY+P12Z*PPZ)/(P12*AK)
91 V=P12/E12
92 V12T=P12T/SQRT(AM12S+P12TS) ! transverse velocity in LCMS
93C---> Coordinates -----------------------------
94 XS=X1-X2
95 YS=Y1-Y2
96 ZS=Z1-Z2
97 TS=T1-T2
98 RS12=XS*P12X+YS*P12Y+ZS*P12Z
99 H1=(RS12/EPM-TS)/AM12
100
88cb7938 101 X=XS+P12X*H1
102 Y=YS+P12Y*H1
103 Z=ZS+P12Z*H1
104 T=(E12*TS-RS12)/AM12
105 RPS=X*X+Y*Y+Z*Z
106 RP=DSQRT(RPS)
ff4431bb 107
108
109 RETURN
110 END
111C====
112 SUBROUTINE LTR8(Z,T,BETA,GAMMA,ZT,TT)
113C===> Lorentz Transf. of Z(Pz) and T(E) to moving ref. frame.(REAL*8)
114CInp: Z,T-Zcoord,Time before tr., BETA,GAMMA- velocity, Lor.fact.
115COut: ZT,TT- " " after transformation.
116C==== ===============================================================
117 IMPLICIT REAL*8 (A-H,O-Z)
118 ZH=GAMMA*(Z-BETA*T)
119 TT=GAMMA*(T-BETA*Z)
120 ZT=ZH
f5ab1a71 121 RETURN
122 END
ff4431bb 123C====
88cb7938 124
ff4431bb 125 SUBROUTINE LTR4(Z,T,BETA,GAMMA,ZT,TT)
126C===> Lorentz Transf. of Z(Pz) and T(E) to moving ref. frame.(real*4)
127CInp: Z,T-Zcoord,Time before tr., BETA,GAMMA- velocity, Lor.fact.
128COut: ZT,TT- " " after transformation.
129C==== ===============================================================
130 ZH=GAMMA*(Z-BETA*T)
131 TT=GAMMA*(T-BETA*Z)
132 ZT=ZH
133 RETURN
134 END
135C====
136 SUBROUTINE ROT8(X,Y,SF,CF,XR,YR)
137C===> Rotation with the angle f. (REAL*8)
138CInp: X,Y-coord. before rotation; SF=sin(f), CF=cos(f),
139COut: XR,YR - coordinates after rotation.
140C==== =================================================
141 IMPLICIT REAL*8 (A-H,O-Z)
142 XH=X*CF+Y*SF !Y
143 YR=Y*CF-X*SF ! _-X'
144 XR=XH ! _- f
145 RETURN !------>
146 END ! X
147
88cb7938 148 SUBROUTINE SETPDIST(R)
149C=====Just sets distance between particles
150 IMPLICIT REAL*8 (A-H,O-Z)
151 COMMON/FSI_PRF/PPX,PPY,PPZ,AK,AKS, ! momenta in PRF
152 1 X,Y,Z,T,RP,RPS
153 RPS=R
154 RP=R*R
155 RETURN
156 END
157
ff4431bb 158
159
160
161
162
163
164
165
166
167
88cb7938 168