IAP GITLAB

Commit edb0decc authored by Tanguy Pierog's avatar Tanguy Pierog

put particles on-shell always (to solve precision problem during conversion single <-> double)


git-svn-id: https://devel-ik.fzk.de/svn/mc/crmc/trunk@5261 c7a5e08c-de06-0410-9364-b41cf42a0b17
parent 9a0b4f9b
......@@ -60,7 +60,7 @@ c Calculations of energy of the center-of-mass in the detector frame
e1=dsqrt(dble(m1)**2+pproj**2)
e2=dsqrt(dble(m2)**2+ptarg**2)
decms=dsqrt((e1+e2)**2-(pproj+ptarg)**2)
decms=dsqrt(((e1+e2)+(pproj+ptarg))*(e1+e2)-(pproj+ptarg)))
c Later a rapidity boost back into the detector system will be performed
doBoost = .true.
c ycm2det defines this rapidity
......@@ -138,7 +138,7 @@ c Output quantities
integer outstat(*)
double precision boostvec1,boostvec2,boostvec3,boostvec4,boostvec5
double precision mass
double precision mass,amt
double precision ycm2det
logical doBoost
common/boostvars/ycm2det,doBoost
......@@ -178,8 +178,8 @@ c write(*,*)nevhep,nhep,boostvec3,boostvec4,ycm2det
c boost output to cms frame
if(doBoost.eqv..true..and.ycm2det.ne.0d0) then
if(model.eq.6) then ! sibyll needs calculated mass because itlob5 does not work with off-shell particles
mass = dsqrt(phep(4,i)**2
+ - phep(1,i)**2 - phep(2,i)**2 - phep(3,i)**2)
amt = dsqrt( phep(1,i)**2 + phep(2,i)**2 + phep(3,i)**2)
mass = dsqrt((phep(4,i)+amt)*(phep(4,i)-amt))
else
mass = phep(5,i)
endif
......@@ -188,6 +188,9 @@ c boost output to cms frame
+ ,vhep(1,i),vhep(2,i),vhep(3,i),vhep(4,i),-99)
call utlob5dbl(-ycm2det
+ ,phep(1,i), phep(2,i), phep(3,i), phep(4,i), mass)
else
phep(4,i)=sqrt(phep(3,i)**2+phep(2,i)**2+phep(2,i)**2
+ +phep(5,i)**2)
endif
outpart(i)=idhep(i)
outpx(i)=phep(1,i)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment