ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
hiboost.f
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file hiboost.f
1 C
2 C
3 C
4 C
5  SUBROUTINE hiboost
6  IMPLICIT DOUBLE PRECISION(d)
7  common/lujets/n,k(9000,5),p(9000,5),v(9000,5)
8  SAVE /lujets/
9  common/ludat1/mstu(200),paru(200),mstj(200),parj(200)
10  SAVE /ludat1/
11  common/hiparnt/hipr1(100),ihpr2(50),hint1(100),ihnt2(50)
12  SAVE /hiparnt/
13  DO 100 i=1,n
14  dbeta=p(i,3)/p(i,4)
15  IF(abs(dbeta).GE.1.d0) THEN
16  db=hint1(2)
17  IF(db.GT.0.99999999d0) THEN
18 C ********Rescale boost vector if too close to unity.
19  WRITE(6,*) '(HIBOOT:) boost vector too large'
20  db=0.99999999d0
21  ENDIF
22  dga=1d0/sqrt(1d0-db**2)
23  dp3=p(i,3)
24  dp4=p(i,4)
25  p(i,3)=(dp3+db*dp4)*dga
26  p(i,4)=(dp4+db*dp3)*dga
27  go to 100
28  ENDIF
29  y=0.5*dlog((1.d0+dbeta)/(1.d0-dbeta))
30  amt=sqrt(p(i,1)**2+p(i,2)**2+p(i,5)**2)
31  p(i,3)=amt*sinh(y+hint1(3))
32  p(i,4)=amt*cosh(y+hint1(3))
33 100 CONTINUE
34  RETURN
35  END