JHUGen MELA  v2.4.1
Matrix element calculations as used in JHUGen. MELA is an important tool that was used for the Higgs boson discovery and for precise measurements of its structure and interactions. Please see the website https://spin.pha.jhu.edu/ and papers cited there for more details, and kindly cite those papers when using this code.
Public Member Functions | List of all members
hto_ln_2_riemann::operator(.lnsrs.) Interface Reference

Public Member Functions

real *8 function, dimension(2) lnsrs (x, y)
 

Detailed Description

Definition at line 518 of file CALLING_cpHTO.f.

Member Function/Subroutine Documentation

◆ lnsrs()

real*8 function, dimension(2) hto_ln_2_riemann::operator(.lnsrs.)::lnsrs ( real*8, dimension(2), intent(in)  x,
real*8, dimension(2), intent(in)  y 
)

Definition at line 523 of file CALLING_cpHTO.f.

523  USE hto_riemann
524  USE hto_full_ln
525  USE hto_units
526  IMPLICIT NONE
527  real*8, dimension(2) :: lnsrs,x,y,olnsrs
528  real*8 ax,ay,teta,tnteta,ilnx,sr,si,sx,sy,xms
529  INTENT(IN) x,y
530 *
531  IF(abs(y(2)).ne.1.d0) THEN
532 *
533  xms= x(1)*x(1)+x(2)*x(2)
534  IF(abs(1.d0-sqrt(xms)).lt.1.d-12) THEN
535  teta= atan(abs(x(2)/x(1)))
536  sr= x(1)/abs(x(1))
537  si= x(2)/abs(x(2))
538  lnsrs(1)= 0.d0
539  IF(sr > 0.d0) THEN
540  lnsrs(2)= si*teta
541  ELSE
542  lnsrs(2)= si*(pi-teta)
543  ENDIF
544  RETURN
545  ELSE
546  lnsrs= x(1).fln.x(2)
547  olnsrs= y(1).fln.y(2)
548  RETURN
549  ENDIF
550  ENDIF
551 *
552  lnsrs(1)= 0.5d0*log(x(1)*x(1)+x(2)*x(2))
553  ax= abs(x(1))
554  ay= abs(x(2))
555  IF(x(1).eq.0.d0) THEN
556  IF(x(2) > 0.d0) THEN
557  teta= pi/2.d0
558  ELSE
559  teta= -pi/2.d0
560  ENDIF
561  ilnx= teta
562  ELSE IF(x(2).eq.0.d0) THEN
563  IF(x(1) > 0.d0) THEN
564  teta= 0.d0
565  ELSE
566  teta= pi
567  ENDIF
568  ilnx= teta
569  ELSE
570  tnteta= ay/ax
571  teta= atan(tnteta)
572  sr= x(1)/ax
573  si= x(2)/ay
574  IF(sr > 0.d0) THEN
575  ilnx= si*teta
576  ELSE
577  ilnx= si*(pi-teta)
578  ENDIF
579  ENDIF
580 *
581  IF(x(1) > 0.d0) THEN
582  IF(y(1) < 0.d0) THEN
583  IF((x(2) > 0.d0.and.y(2) > 0).or.
584  # (x(2) < 0.d0.and.y(2) < 0)) THEN
585  lnsrs(2)= ilnx
586  ELSEIF(x(2) > 0.d0.and.y(2) < 0) THEN
587  lnsrs(2)= ilnx-pi
588  ELSE
589  print*,'+++++++++++++++++++++++++++++++++++'
590  print*,' anomaly ln '
591  print*,x
592  print*,y
593  print*,'+++++++++++++++++++++++++++++++++++'
594  ENDIF
595  ELSE
596  lnsrs(2)= ilnx
597  ENDIF
598  ELSE
599  IF(abs(y(2)).ne.1.d0) THEN
600  print*,' Wrong argument for LNSRS '
601  stop
602  ELSE
603 *
604  IF((x(2)*y(2)) < 0.d0) THEN
605  lnsrs(2)= ilnx+2.d0*y(2)*pi
606  ELSE
607  lnsrs(2)= ilnx
608  ENDIF
609 *
610  ENDIF
611  ENDIF
612  RETURN

The documentation for this interface was generated from the following file:
hto_riemann
Definition: CALLING_cpHTO.f:195
hto_ln_2_riemann::lnsrs
real *8 function, dimension(2) lnsrs(x, y)
Definition: CALLING_cpHTO.f:523
hto_units
Definition: CALLING_cpHTO.f:179
hto_full_ln
Definition: CALLING_cpHTO.f:464
hto_full_ln::fln
real *8 function, dimension(2) fln(x, y)
Definition: CALLING_cpHTO.f:470