Index: trunk/src/tauola/tauola_interface.f90 =================================================================== --- trunk/src/tauola/tauola_interface.f90 (revision 8406) +++ trunk/src/tauola/tauola_interface.f90 (revision 8407) @@ -1,942 +1,992 @@ ! ! WHIZARD Tauola interface ! Adapted from ilc_tauola_mod.f90 ! for Whizard1 developed by Timothy Barklow (SLAC) ! ! Akiya Miyamoto +! Bug fixes: Mikael Berggren, Juergen Reuter ! module tauola_interface use kinds use io_units use constants use iso_varying_string, string_t => varying_string use format_utils, only: write_separator use debug_master, only: debug_on use diagnostics use hep_common use hepev4_aux use variables use model_data implicit none private public :: wo_tauola_pytaud public :: tauspin_pyjets public :: wo_tauola_get_helicity_mod public :: wo_tauola_init_call public :: wo_tauola_get_helicity public :: taudec_settings_t public :: pyjets_spin_t !!! THIS COMMON BLOCK IS USED FOR COMMUNICATION WITH TAUOLA common /taupos/ np1, np2 integer :: np1 integer :: np2 !!! THIS COMMON BLOCK IS USED FOR COMMUNICATION WITH TAUOLA COMMON / MOMDEC / Q1,Q2,P1,P2,P3,P4 double precision Q1(4),Q2(4),P1(4),P2(4),P3(4),P4(4) double precision, external :: wthiggs logical, save, public :: trans_spin logical, save, public :: tau_pol_vec integer :: jtau2, jorig, jforig integer :: nproducts integer, parameter :: n_pyjets_max = 4000 - integer, save :: max_dump = 0 integer, save :: nsub_call = 0 double precision :: spin_dexay double precision, dimension(n_pyjets_max) :: tauspin_pyjets double precision, dimension(4) :: pol logical :: higgs_dec !!! Probability of tau- to be left-handed in Z decays double precision, parameter :: a_tau = 0.15 double precision, parameter :: prob_tau_left_z = (a_tau+1.) / 2. type :: taudec_settings_t logical :: photos logical :: transverse logical :: dec_rad_cor integer :: dec_mode1 integer :: dec_mode2 real(default) :: mh real(default) :: mix_angle real(default) :: mtau logical :: use_pol_vec contains procedure :: init => taudec_settings_init procedure :: write => taudec_settings_write end type taudec_settings_t type :: pyjets_spin_t integer :: index_to_hepeup ! =-1, if no matching entry in hepeup double precision :: helicity ! copy of SPINUP integer :: pid ! particle ID integer :: id_orig ! pid of parent integer :: index_orig ! index of parent integer :: n_daughter ! number of daughter integer, dimension(10) :: index_daughter ! index of daughter particles end type pyjets_spin_t type(pyjets_spin_t), dimension(n_pyjets_max), save :: pyjets_spin_data integer :: last_event_number = -999 interface function pyr(i_dum) implicit none double precision :: pyr integer, intent(in) :: i_dum end function pyr end interface contains subroutine fill_pyjets_spin_data integer :: ip integer :: hepeup_index - integer :: iorig + integer :: iorig, iii integer :: idau1, idau2, n_doc_lines integer, dimension(200) :: mstp double precision, dimension(200) :: parp integer, dimension(200) :: msti double precision, dimension(200) :: pari common/pypars/mstp,parp,msti,pari save/pypars/ integer :: n integer :: npad integer, dimension(4000,5) :: k double precision, dimension(4000,5) :: p double precision, dimension(4000,5) :: v common/pyjets/n,npad,k,p,v save/pyjets/ !!! Set helicity information of document lines at the first call of !!! this event !!! MSTI(4) ; number of documentation lines !!! MSTI(5) ; number of events generated if (last_event_number == MSTI(5)) then return end if do ip = 1, n_pyjets_max pyjets_spin_data(ip)%index_to_hepeup = 0 pyjets_spin_data(ip)%helicity = 0 end do ip = 1 hepeup_index = 0 + if (debug_active (D_TAUOLA)) then + call msg_debug (D_TAUOLA, "TAUOLA interface: fill_pyjets_spin_data") + print *,"nup in hepev4 = ", nup + print *, " index spin" // & + " pdg mothers " + do iii=1,nup + print *, iii, spinup(iii), idup(iii),mothup(:,iii) + enddo + end if + + if (signal_is_pending ()) return do while (k(ip,1) == 21) pyjets_spin_data(ip)%pid = k(ip,2) pyjets_spin_data(ip)%id_orig = k(ip,3) pyjets_spin_data(ip)%index_orig = ip pyjets_spin_data(ip)%n_daughter = 0 iorig = k(ip,3) - if (iorig == 0) then + if ((hepeup_index < nup) .and. (iorig == 0 .or. & + (any (abs(k(ip,2)) == [15,16]) .and. .not. & + any(spinup(min(hepeup_index+1,nup)) == [0.0, 9.0])))) then hepeup_index = hepeup_index + 1 pyjets_spin_data(ip)%index_to_hepeup = hepeup_index pyjets_spin_data(ip)%helicity = spinup(hepeup_index) else pyjets_spin_data(ip)%index_to_hepeup = -1 pyjets_spin_data(ip)%helicity = 0 pyjets_spin_data(iorig)%n_daughter = & pyjets_spin_data(iorig)%n_daughter + 1 pyjets_spin_data(iorig)%index_daughter(pyjets_spin_data(iorig)%n_daughter)=ip - end if - if (debug2_active (D_TAUOLA)) then - call msg_debug2 (D_TAUOLA, "TAUOLA interface: fill_pyjets_spin_data") - write (msg_buffer, "(A,I0,A,I0,A,I0,A,ES19.12)") & - "ip = ", ip, " iorig = ", iorig, " pid ", k(ip,2), & - " spin = ", pyjets_spin_data(ip)%helicity - call msg_message () + if (debug_active (D_TAUOLA)) then + if ( abs(k(ip,2)) == 15 ) then + print *, " No input spin information for tau at ip = ", ip, & + ". Will be set in fill_pyjets_spin_data" + end if + end if end if if (abs(k(ip,2)) == 15 .and. pyjets_spin_data(ip)%helicity == 9) then - if (nsub_call .lt. min(5, 2*max_dump)) then + if (nsub_call .lt. 5) then write (msg_buffer, "(A)") & "Subroutine fill_pyjets_spin_data: tau helicity information" call msg_message () write (msg_buffer, "(A)") & "is not set, though polarized tau decay was requested." call msg_message () write (msg_buffer, "(A)") & "Most likely, the SINDARIN file does not include polarized" call msg_message () write (msg_buffer, "(A)") & "for particles and/or not ?polarized_events=true" call msg_message () write (msg_buffer, "(A,I0,A,I0,A,I0,A,I0)") & "Number of calls:", nsub_call, " ip = ", ip, " iorig = ", & iorig, " pid = ", k(ip,2), " spin = ", & pyjets_spin_data(ip)%helicity end if end if ip = ip + 1 end do n_doc_lines = ip - 1 + if (signal_is_pending ()) return do ip = 1, n_doc_lines + iorig = k(ip,3) if (pyjets_spin_data(ip)%n_daughter == 2) then !!! h0/H0/A0 -> tau tau if (pyjets_spin_data(ip)%pid == 25 .or. & pyjets_spin_data(ip)%pid == 35 .or. & pyjets_spin_data(ip)%pid == 36) then idau1 = pyjets_spin_data(ip)%index_daughter(1) idau2 = pyjets_spin_data(ip)%index_daughter(2) if (abs(pyjets_spin_data(idau1)%pid) == 15 .and. & (pyjets_spin_data(idau1)%pid + & pyjets_spin_data(idau2)%pid) == 0) then if (pyr(0) .lt. 0.5) then pyjets_spin_data(idau1)%helicity = -1 - pyjets_spin_data(idau2)%helicity = +1 + pyjets_spin_data(idau2)%helicity = -1 else pyjets_spin_data(idau1)%helicity = +1 - pyjets_spin_data(idau2)%helicity = -1 + pyjets_spin_data(idau2)%helicity = +1 end if end if !!! Z0 -> tau tau else if (pyjets_spin_data(ip)%pid == 23) then idau1 = pyjets_spin_data(ip)%index_daughter(1) idau2 = pyjets_spin_data(ip)%index_daughter(2) if (abs(pyjets_spin_data(idau1)%pid) == 15 .and. & (pyjets_spin_data(idau1)%pid + & pyjets_spin_data(idau2)%pid) == 0) then if (((pyr(0) - prob_tau_left_z) * & pyjets_spin_data(idau1)%pid) .gt. 0.0) then pyjets_spin_data(idau1)%helicity = +1 pyjets_spin_data(idau2)%helicity = -1 else pyjets_spin_data(idau1)%helicity = -1 pyjets_spin_data(idau2)%helicity = +1 end if end if !!! W+(24)/H+(37) -> tau+(-15) and neu_tau else if ( pyjets_spin_data(ip)%pid == 24 .or. & pyjets_spin_data(ip)%pid == 37) then idau1 = pyjets_spin_data(ip)%index_daughter(1) idau2 = pyjets_spin_data(ip)%index_daughter(2) if ( pyjets_spin_data(idau1)%pid == -15 ) then pyjets_spin_data(idau1)%helicity = 1 else if ( pyjets_spin_data(idau2)%pid == -15 ) then pyjets_spin_data(idau2)%helicity = 1 end if !!! W-(-24)/H-(-37) -> tau-(+15) and neu_tau_bar else if (pyjets_spin_data(ip)%pid == -24 .or. & pyjets_spin_data(ip)%pid == -37) then idau1 = pyjets_spin_data(ip)%index_daughter(1) idau2 = pyjets_spin_data(ip)%index_daughter(2) if (pyjets_spin_data(idau1)%pid == 15) then pyjets_spin_data(idau1)%helicity = -1 else if (pyjets_spin_data(idau2)%pid == 15) then pyjets_spin_data(idau2)%helicity = -1 end if end if end if + if (debug2_active (D_TAUOLA)) then + call msg_debug2 (D_TAUOLA, "TAUOLA interface: end of fill_pyjets_spin_data") + write (msg_buffer, "(A,I0,A,I0,A,I0,A,ES19.12)") & + "ip = ", ip, " iorig = ", iorig, " pid ", k(ip,2), & + " spin = ", pyjets_spin_data(ip)%helicity + call msg_message () + end if end do end subroutine fill_pyjets_spin_data ! ===================================================================== ! Main interface to tauola. ! Called by PYTAUD and calls TAUOLA ! ===================================================================== subroutine wo_tauola_pytaud (itau, iorig, kforig, ndecay) !!! Line number in /JETSET/ where the tau is stored integer, intent(in) :: itau !!! Line number where the mother is stored. =0 if the mother is not stored integer, intent(in) :: iorig !!! Flavour code of the mother. 0 unknown. H0(25), W+-(+-24), !!! gamma*/Z=23, H+-(+-37) integer, intent(in) :: kforig !!! Number of decay products to be given by user routine. integer, intent(out) :: ndecay double precision, dimension(5) :: p_dexay integer :: id_dexay integer :: ip integer :: n integer :: npad integer, dimension(4000,5) :: k double precision, dimension(4000,5) :: p double precision, dimension(4000,5) :: v common /pyjets/ n, npad, k, p, v save /pyjets/ integer, dimension(200) :: mstp double precision, dimension(200) :: parp integer, dimension(200) :: msti double precision, dimension(200) :: pari common /pypars/ mstp, parp, msti, pari save /pypars/ !!! TODO: (bcn 2016-03-11) this should only be !!! called once per event (not per tau) integer :: idau1, idau2 + integer, allocatable :: these_taus(:), these_tau_daughters(:) + logical, allocatable :: chain(:) + integer :: i,ntaus, itp , offset + higgs_dec = .false. if (kforig == 25 .or. kforig==35 .or. kforig== 36) then higgs_dec = .true. end if + if (signal_is_pending ()) return !!! JRR: Tau decays are very sensitive to numerical noise, momenta !!! should be, in principle, strictly on the z axis if (abs (p(itau,1)) < 1.d-13) p(itau,1) = 0 if (abs (p(itau,2)) < 1.d-13) p(itau,2) = 0 !!! MSTI(4): number of documentation lines !!! MSTI(5): number of events generated if (last_event_number .ne. MSTI(5)) then call fill_pyjets_spin_data last_event_number = MSTI(5) jtau2 = -1000 nsub_call = nsub_call + 1 end if - if (nsub_call .lt. max_dump) then + if (debug_active (D_TAUOLA)) then write (msg_buffer, "(A)") "wo_tauola_pytaud was called." call msg_message () write (msg_buffer, "(A,I0,A,I0,A,I0,A,I0)") & - "ncall = ", nsub_call, "itau = ", itau, " iorig = ", iorig, & + "ncall = ", nsub_call, " itau = ", itau, " iorig = ", iorig, & " kforig = ", kforig call msg_message () - call pylist(2) + if (debug2_active (D_TAUOLA)) then + call pylist(2) + end if end if jorig = iorig jforig = kforig - !!! If tau origin is not known (tau is generated by parton generator with - !!! with full matrix elements), look for the parton information, which is - !!! stored as status code 21 - if (iorig == 0) then - ip = itau - do while (k(ip,3) .ne. 0 .or. ip .le. 0) - ip = k(ip,3) + offset=0 ; if ( MSTP(125) > 1 ) offset = mstp(126)-count(k(1:mstp(126)-1,1)==21) + these_taus=PACK([(i,i=1,n)],(k(1:n,2)==k(itau,2).and.k(1:n,1)/=21)) ; ntaus=size(these_taus) + these_tau_daughters=modulo(k(these_taus,4),10000) ! 10000 = mstu(5) in /pydat1/ + + if (debug2_active (D_TAUOLA)) then + print *, ' offsets etc. : ',offset, MSTP(125), MSTP(126) + print *, ' ntaus = ', ntaus + print *, ' these_taus = ', these_taus + print *, ' these_tau_daughters = ', these_tau_daughters + print *, ' these_taus parent on line(s) = ', k(these_taus(1:ntaus),3) + print *, ' helicty of parents : ', pyjets_spin_data(k(these_taus(1:ntaus),3))%helicity + end if + + if (.not. all(these_tau_daughters(1:ntaus-1) == these_taus(2:ntaus))) then + ! maybe multi-tau, sqeeze out the wrong chain(s) + allocate (chain(ntaus)) + chain=.FALSE. + itp = transfer (maxloc(these_taus,(these_taus==itau)),itp) + + if (debug2_active (D_TAUOLA)) then + print *, ' tau and daughter lists NOT equal. Checking for multiple taus ... ' + print *, ' initial itp = ', itp + end if + + chain(itp) = .true. + do while (itp > 0) + if (signal_is_pending ()) return + if (size (these_taus) /= 0 .and. any (these_tau_daughters == these_taus(itp))) then + itp=transfer(maxloc(these_taus,(these_tau_daughters==these_taus(itp))),itp) + else + itp = 0 + end if + if (itp > 0) chain(itp) = .true. end do - id_dexay = k(itau,2) - p_dexay = p(itau,1:5) - pyjets_spin_data(itau)%helicity = pyjets_spin_data(ip)%helicity - spin_dexay = pyjets_spin_data(ip)%helicity - - !!! If tau origin is known (iorig .ne. 0), decide tau helicity - !!! based on parent particle id (kforig) - !!! kforig = 25/35/36: 2 tau's spin must be generated: tau + ntaus = count(chain) + these_taus(1:ntaus) = pack (these_taus, chain) + these_tau_daughters(1:ntaus) = pack (these_tau_daughters, chain) + + if (debug2_active (D_TAUOLA)) then + print *, ' after multi-tau loop : ' + print *, ' ntaus = ', ntaus + print *, ' chain = ', chain + print *, ' these_taus = ', these_taus + print *, ' these_tau_daughters = ', these_tau_daughters + end if + + end if + if (all(these_tau_daughters(1:ntaus-1) == these_taus(2:ntaus)) .and. ntaus > 0) then + pyjets_spin_data(these_taus(1:ntaus))%helicity = pyjets_spin_data(k(these_taus(1),3))%helicity + if (offset /= 0) pyjets_spin_data(these_taus(1:ntaus)-offset)%helicity = & + pyjets_spin_data(k(these_taus(1),3))%helicity else - id_dexay = k(itau,2) - p_dexay = p(itau,1:5) - !!! h0 or Z0 or W case - if (higgs_dec .or. kforig==23 .or. abs(kforig)==24) then - ip = k(itau,3) - if (k(ip,1)==21 .and. abs(k(ip,2))==15) then - pyjets_spin_data(itau)%helicity = pyjets_spin_data(ip)%helicity - end if - spin_dexay = pyjets_spin_data(itau)%helicity + call msg_warning ("Tau lepton not found: ntaus is " // int2char (ntaus) // ".") + end if + + if (signal_is_pending ()) return - !!! Fill momentum of second tau if kforig == 25 ( Higgs ) - if (higgs_dec .and. trans_spin) then + if (iorig /= 0 .and. higgs_dec .and. trans_spin) then - idau1 = pyjets_spin_data(iorig)%index_daughter(1) - idau2 = pyjets_spin_data(iorig)%index_daughter(2) + idau1 = pyjets_spin_data(iorig)%index_daughter(1) + idau2 = pyjets_spin_data(iorig)%index_daughter(2) !!! Parent Higgs is not in the documentation line (K(,1) != 21) !!! Get pointer to daughter directly from JETSET - if (idau1 == 0) then - idau1 = k(iorig,4) - idau2 = k(iorig,5) - end if - if (idau1 .ne. itau) then - write (msg_buffer, "(A,I0,A,I0,A)") & + if (idau1 == 0) then + idau1 = k(iorig,4) + idau2 = k(iorig,5) + end if + if (idau1 .ne. itau) then + write (msg_buffer, "(A,I0,A,I0,A)") & "idau1 = ", idau1, "itau = ", itau, " are not equal." - call msg_fatal ("wo_tauola_pytaud: " // & + call msg_fatal ("wo_tauola_pytaud: " // & "Something is wrong in parent-daughter relation.") - end if - jtau2 = idau2 + end if + jtau2 = idau2 !!! Reset tau spin information because it is decided internally - pyjets_spin_data(itau)%helicity = 0 - pyjets_spin_data(jtau2)%helicity = 0 - end if - else - !!! Unknow decay mother - if (debug_active (D_TAUOLA)) then - call msg_warning ("wo_tau_decay : Unknown decay mother of " // & - "tau, id = " // int2char (kforig) // & - ", tau is 50% right or 50% left handed.") - end if - if (pyr(0) .lt. 0.5) then - spin_dexay = -1 - else - spin_dexay = +1 - end if - pyjets_spin_data(itau)%helicity = spin_dexay - end if + pyjets_spin_data(itau)%helicity = 0 + pyjets_spin_data(jtau2)%helicity = 0 end if + + id_dexay = k(itau,2) + p_dexay = p(itau,1:5) + spin_dexay = pyjets_spin_data(itau)%helicity + call do_dexay (itau, p_dexay, id_dexay, kforig) ndecay = nproducts end subroutine wo_tauola_pytaud subroutine do_dexay (itau, p_dexay, id_dexay, kforig) !!! Main routine to call Tauola. Three type of tau decay: !!! (A) Higgs to tau+tau- !!! (B) single tau+ decay !!! (C) single tau- decay, are treated separately integer, intent(in) :: itau, id_dexay double precision, dimension(5), intent(in) :: p_dexay integer, intent(in) :: kforig integer :: i, IFPHOT logical :: ifpseudo, is_swapped double precision, dimension(4) :: pol1, pol2 integer :: im double precision :: rrr(1), wt double precision :: hh1(4), hh2(4) integer :: ion(3), np common /PHOACT/ IFPHOT integer :: n integer :: npad integer, dimension(4000,5) :: k double precision, dimension(4000,5) :: p double precision, dimension(4000,5) :: v common /pyjets/ n, npad, k, p, v save /pyjets/ integer :: n1, n2 is_swapped = .false. !!! For transverse spin of the Higgs, Higgs and the two taus !!! have to be considered if (trans_spin .and. IFPHOT == 1) then n1 = 2 n2 = 3 nhep = 3 else n1 = 1 n2 = 2 nhep = 2 end if tauspin_pyjets(itau) = spin_dexay !!! Does SPINHIGGS in tauface_jetset.f ifpseudo = kforig == 36 isthep(n1) = 1 idhep(n1) = id_dexay jmohep(:,n1) = 0 jdahep(:,n1) = 0 phep(:,n1) = p_dexay isthep(n2) = 1 idhep(n2) = - id_dexay jmohep(:,n2) = 0 jdahep(:,n2) = 0 phep(1:3,n2) = - phep(1:3,n1) phep(4:5,n2) = phep(4:5,n1) !!! NOTE (Akiya Miyamoto, 25-March-2016) !!! Higgs (h0/H0/A0) to tau+tau- decay is handled here !!! in order to implement a transverse spin correlation. !!! For this algorithm to work, photon emission from tau !!! before decay should be turned off. Since photon emission !!! from tau is handled by PYTHIA, photon emission from ALL tau !!! should be turned off. It is done by setting MSTJ(39)=15. !!! Instead, PHOTOS is called after tau decay and generate !!! photons. !!! **************************************************************** !!! (A) Higgs to tau+ tau- decay . !!! **************************************************************** if (higgs_dec .and. trans_spin) then if (idhep(2) .gt. 0) then idhep(3) = id_dexay idhep(2) = - id_dexay is_swapped = .true. end if phep(:,n1) = p_dexay phep(1:3,n2) = - phep(1:3,2) phep(4:5,n2) = phep(4:5,2) isthep(1) = 11 idhep(1) = kforig jmohep(:,1) = 0 jdahep(1,1) = n1 jdahep(2,1) = n2 phep(:,1) = phep(:,2) + phep(:,3) phep(5,1) = sqrt(phep(4,1)**2 - phep(1,1)**2 - phep(2,1)**2 - & phep(3,1)**2) jmohep(:,n1) = 1 jmohep(:,n2) = 1 p1=phep(1:4,np1) ! tau+ momentum p2=phep(1:4,np2) ! tau- momentum q1 = p1 + p2 im = 1 end if !!! tau+ momentum should have positive Pz !!! tau- momentum should have negative Pz !!! ******************************************************** !!! (B) Single Tau+ decay !!! ******************************************************** if (.not. trans_spin) then check_tau_sign: if (idhep(n1) .lt. 0) then np1 = n1 np2 = n2 pol = 0. pol(3) = - spin_dexay p1 = phep(1:4,n1) p2 = phep(1:4,n2) q1 = p1 + p2 - if (nsub_call .lt. max_dump) then + if (debug_active (D_TAUOLA)) then call msg_message ("Tau+ decay with pol(3) = " // & real2char (real (pol(3), kind=default)) // ".") write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, q1 = ", q1 write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, p1 = ", p1 write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, p2 = ", p2 end if if (debug_on) call msg_debug2 (D_TAUOLA, "TAUOLA is called here") call dexay (1,pol) if (IFPHOT == 1) call photos (np1) !!! ******************************************************** !!! (C) Single Tau- decay !!! ******************************************************** else check_tau_sign idhep(3) = id_dexay idhep(2) = - id_dexay np2 = n1 np1 = n2 pol = 0. pol(3) = spin_dexay !!! Akiya now has a relation with the negative spin_dexay ! pol(3) = - spin_dexay p2 = phep(1:4,n1) p1 = phep(1:4,n2) q1 = p1 + p2 - if (nsub_call .lt. max_dump) then + if (debug_active (D_TAUOLA)) then call msg_message ("Tau- decay with pol(3) = " // & real2char (real (pol(3), kind=default)) // ".") write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, q1 = ", q1 write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, p1 = ", p1 write (*, "(A,4(1x,ES19.12))") "Antiparticle decay, p2 = ", p2 end if if (debug_on) call msg_debug2 (D_TAUOLA, "TAUOLA is called here") call dexay (2,pol) if (IFPHOT == 1) call photos (np2) is_swapped = .true. end if check_tau_sign end if !!! TODO (Akiya Miyamoto, 25-march-2016) !!! In the following code, the tau helicity (polarization vector) !!! information is not stored in pyjets_spin_data(jtau)%helicity !!! and /HEPEV4/, because the tau polarization vector is determined !!! here in order to have a transverse spin correlation between !!! tau+ and tau-, but the decided polarization vectors are not !!! calculated here. It would be possible to calculate them !!! from the polarimetric vectors, hh1 and hh2, after !!! the end of the rejection loop. + if (signal_is_pending ()) return + if (trans_spin) then if (.not. tau_pol_vec) then pol1 = 0 pol2 = 0 if (pyr(0) .gt. 0.5) then pol1(3) = 1 pol2(3) = -1 else pol1(3) = -1 pol2(3) = 1 end if call dexay (1, pol1) call dexay (2, pol2) else !!! Decide polarimetric vector to have a spin correlation REJECTION: do call ranmar (rrr, 1) !!! tau+ decay call dekay (1, hh1) !!! tau- decay call dekay (2, hh2) wt = wthiggs (ifpseudo, hh1, hh2) if (rrr(1) .lt. wt) exit REJECTION end do REJECTION ion = 0 call dekay(11, hh1) call taupi0 (0, 1, ion) call dekay(12, hh2) call taupi0 (0, 2, ion) end if if (IFPHOT == 1) call photos (im) end if !!! ********************************************************** !!! Now copies /HEPEVT/ to /PYJETS/ !!! Higgs tau pair decay and single tau decay are treated !!! separately. !!! ********************************************************** nproducts = 0 np = nproducts !!! ========================================================= !!! Higgs to tau pair decay case. !!! ========================================================= if (higgs_dec .and. trans_spin .and. jtau2 .gt. 0) then if (is_swapped) then !!! invert all momentum do i = n1, nhep phep(1:3,i) = - phep(1:3,i) end do do i = n2+1, nhep if (jmohep(1,i) == n1) then jmohep(1,i) = n2 jmohep(2,i) = n2 else if (jmohep(1,i) == n2) then jmohep(1,i) = n1 jmohep(2,i) = n1 end if end do end if !!! Overwrite tau+ and tau- data in /PYJETS/, because tau+tau- momentum !!! could have been changed due to photon emmision in Higgs --> tau+ tau- !!! system. Their momentum should be boosted and rotate back to the lab frame !!! in the calling routine, PYDCAY. if (is_swapped) then p(itau,:) = phep(:,3) k(itau,4) = jdahep(1,3) - n2 + n k(itau,5) = jdahep(2,3) - n2 + n p(jtau2,:) = phep(:,2) k(jtau2,4) = jdahep(1,2) - n2 + n k(jtau2,5) = jdahep(2,2) - n2 + n else p(itau,:) = phep(:,2) k(itau,4) = jdahep(1,2) - n2 + n k(itau,5) = jdahep(2,2) - n2 + n p(jtau2,:) = phep(:,3) k(jtau2,4) = jdahep(1,3) - n2 + n k(jtau2,5) = jdahep(2,3) - n2 + n end if k(itau, 1) = 11 k(jtau2, 1) = 11 k(itau, 3) = jorig k(jtau2, 3) = jorig !!! TODO : Akiya Miyamoto, 12-April-2016 !!! Reset daughter pointer of Higgs, because Higgs daughters !!! increase when photons are emitted. This may not work well if !!! additional particles exist after second tau. k(jorig,4) = itau k(jorig,5) = jtau2 ! jtau2 > jtau allways if (jdahep(2,1)-jdahep(1,1)+1 .gt. 2) then if (n .gt. jtau2) then write (msg_buffer, "(A)") & "Tau decay routine do_dexay: necessary to update " // & "index of Higgs daughter in order to include photons " // & "produced by PHOTOS." call msg_message () write (msg_buffer, "(A)") & "Run continues without modifying the 2nd daughter pointer." call msg_message () else k(jorig,5) = jdahep(2,1) - n2 + n end if end if !!! Now, fill the information of tau daughters to /PYJETS/ nproducts = 0 loop_products_higgs: do i = n2+1, nhep nproducts = nproducts + 1 p(n+nproducts,:) = phep(:,i) k(n+nproducts,2) = idhep(i) k(n+nproducts,3) = jmohep(1,i) - n2 + n if (isthep(i) == 1) then k(n+nproducts,1) = 1 k(n+nproducts,4) = 0 k(n+nproducts,5) = 0 else k(n+nproducts,1) = 11 k(n+nproducts,4) = jdahep(1,i) - n2 + n k(n+nproducts,5) = jdahep(2,i) - n2 + n end if end do loop_products_higgs !!! *************************************************************** !!! Single tau decay case. !!! This case, parent tau daghter momentum is not over-wtitten !!! *************************************************************** else loop_products_nohiggs: do i = n2+1, nhep nproducts = nproducts + 1 p(n+nproducts,:) = phep(:,i) if (isthep(i) == 1) then k(n+nproducts,1) = 1 k(n+nproducts,4) = 0 k(n+nproducts,5) = 0 else k(n+nproducts,1) = 11 k(n+nproducts,4) = jdahep(1,i) - n2 + n k(n+nproducts,5) = jdahep(2,i) - n2 + n end if k(n+nproducts,2) = idhep(i) if (abs(idhep(jmohep(1,i))) .ne. 15) then k(n+nproducts,3) = jmohep(1,i) - n2 + n else k(n+nproducts,3) = itau end if end do loop_products_nohiggs k(itau,4) = jdahep(1,2) - n2 + n k(itau,5) = jdahep(2,2) - n2 + n end if - if (nsub_call .lt. max_dump) then + if (debug2_active (D_TAUOLA)) then call msg_message ("TAUOLA interface: PYLIST at the end of do_dexay") n = n + nproducts call pylist(2) n = n - nproducts end if end subroutine do_dexay subroutine taudec_settings_init (taudec_settings, var_list, model) class(taudec_settings_t), intent(out) :: taudec_settings type(var_list_t), intent(in) :: var_list class(model_data_t), intent(in) :: model type(field_data_t), pointer :: field taudec_settings%photos = & var_list%get_lval (var_str ("?ps_tauola_photos")) taudec_settings%transverse = & var_list%get_lval (var_str ("?ps_tauola_transverse")) taudec_settings%dec_rad_cor = & var_list%get_lval (var_str ("?ps_tauola_dec_rad_cor")) taudec_settings%dec_mode1 = & var_list%get_ival (var_str ("ps_tauola_dec_mode1")) taudec_settings%dec_mode2 = & var_list%get_ival (var_str ("ps_tauola_dec_mode2")) taudec_settings%mh = & var_list%get_rval (var_str ("ps_tauola_mh")) taudec_settings%mix_angle = & var_list%get_rval (var_str ("?ps_tauola_mix_angle")) taudec_settings%use_pol_vec = & var_list%get_lval (var_str ("?ps_tauola_pol_vector")) select case (char (model%get_name ())) case ("QCD", "Test") call msg_fatal ("taudec_settings_init: Model has no tau.") case default field => model%get_field_ptr (15) taudec_settings%mtau = field%get_mass () end select end subroutine taudec_settings_init subroutine taudec_settings_write (taudec_settings, unit) class(taudec_settings_t), intent(in) :: taudec_settings integer, intent(in), optional :: unit integer :: u u = given_output_unit (unit); if (u<0) return write (u, "(1x,A)") "Tau decay settings:" call write_separator (u) write (u, "(3x,A,1x,L1)") & "ps_tauola_photos = ", taudec_settings%photos write (u, "(3x,A,1x,L1)") & "ps_tauola_transverse = ", taudec_settings%transverse write (u, "(3x,A,1x,L1)") & "ps_tauola_dec_rad_cor = ", taudec_settings%dec_rad_cor write (u, "(3x,A,1x,I2)") & "ps_tauola_dec_mode1 = ", taudec_settings%dec_mode1 write (u, "(3x,A,1x,I2)") & "ps_tauola_dec_mode2 = ", taudec_settings%dec_mode2 write (u, "(3x,A,1x,ES19.12)") & "ps_tauola_mh = ", taudec_settings%mh write (u, "(3x,A,1x,ES19.12)") & "ps_tauola_mix_angle = ", taudec_settings%mix_angle write (u, "(3x,A,1x,L1)") & "ps_tauola_use_pol_vec = ", taudec_settings%use_pol_vec end subroutine taudec_settings_write function wo_tauola_get_helicity_mod (ip) result (the_helicity) integer, intent(in) :: ip integer :: the_helicity integer :: n, npad integer, dimension(4000,5) :: k double precision, dimension(4000,5) :: p double precision, dimension(4000,5) :: v common /pyjets/ n, npad, k, p, v save /pyjets/ integer, dimension(200) :: mstu double precision, dimension(200) :: paru integer, dimension(200) :: mstj double precision, dimension(200) :: parj common /pydat1/ mstu, paru, mstj, parj save /pydat1/ if ( MSTJ(28) .NE. 2 ) then the_helicity=0 else if ( ip .le. 0 .or. ip .gt. n ) then the_helicity = 0 else the_helicity = int(pyjets_spin_data(ip)%helicity) end if end if end function wo_tauola_get_helicity_mod subroutine wo_tauola_get_helicity (ip, the_helicity) integer, intent(in) :: ip integer, intent(out) :: the_helicity the_helicity = wo_tauola_get_helicity_mod(ip) if (debug_active (D_TAUOLA)) then if ( abs(the_helicity) .gt. 1 ) then write (msg_buffer, "(A,I0,A,I0,A)") & "Stored helicity information is wrong: ", the_helicity, & "for ip = ", ip, "." call msg_warning () end if end if end subroutine wo_tauola_get_helicity subroutine wo_tauola_init_call (taudec_settings) !!! Tauola initialization. !!! (default defined in rt_data) !!! JAK1 ! (0) decay mode of first tau !!! JAK2 ! (0) decay mode of second tau !!! ITDKRC ! (1) switch on radiative corrections in decay !!! IFPHOT ! (1) PHOTOS switch type(taudec_settings_t), intent(in) :: taudec_settings INTEGER JAK1, JAK2, JAKP, JAKM, KTOM COMMON /JAKI/ JAK1, JAK2, JAKP, JAKM, KTOM integer, dimension(200) :: MSTP double precision, dimension(200) :: PARP integer, dimension(200) :: MSTI double precision, dimension(200) :: PARI common /PYPARS/ MSTP, PARP, MSTI, PARI save /PYPARS/ integer, dimension(200) :: MSTU double precision, dimension(200) :: PARU integer, dimension(200) :: MSTJ double precision, dimension(200) :: PARJ common /PYDAT1/ MSTU, PARU, MSTJ, PARJ save /PYDAT1/ integer :: ITDKRC, IFPHOT double precision :: psi, betah double precision :: csc, ssc common /pseudocoup/ csc, ssc save /pseudocoup/ integer, dimension(3) :: ion double precision, dimension(4) :: pol1x JAK1 = taudec_settings%dec_mode1 JAK2 = taudec_settings%dec_mode2 if (taudec_settings%dec_rad_cor) then ITDKRC = 1 else ITDKRC = 0 end if if (taudec_settings%photos) then IFPHOT = 1 else IFPHOT = 0 end if trans_spin = taudec_settings%transverse tau_pol_vec = taudec_settings%use_pol_vec psi = dble (taudec_settings%mix_angle * degree) betah = dble (sqrt (one - four * taudec_settings%mtau**2 / & taudec_settings%mh**2)) csc = cos(psi) * betah ssc = sin(psi) + if (signal_is_pending ()) return if (trans_spin) then if (mstj(39) .ne. 15) then call msg_warning ("wo_tauola_init_call: transverse spin " // & "correlation requested for H -> tau tau. Photon radiation " // & "from PYTHIA will be switched off.") mstj(39) = 15 end if end if call phoini call inietc (JAK1, JAK2, ITDKRC, IFPHOT) call inimas call iniphx (0.01d0) call initdk ! !!! Deactivation of pi0 and eta decays: (1) means on, (0) off ion = 0 call taupi0 (-1, 1, ion) call dekay (-1, pol1x) if (debug2_active (D_TAUOLA)) then call msg_debug2 (D_TAUOLA, "TAUOLA initialization") call taudec_settings%write () call msg_debug2 (D_TAUOLA, " check if TAUOLA common block has been set") call msg_debug2 (D_TAUOLA, "Tau decay modes set") print *, " Tau decay modes: tau+(JAK1) = ", jak1, & " tau-(JAK2) = ", JAK2 call msg_message (" JAK = 0 : All decay mode") call msg_message (" JAK = 1 : electron mode") call msg_message (" JAK = 2 : muon mode") call msg_message (" JAK = 3 : pion mode") call msg_message (" JAK = 4 : rho mode") call msg_message (" JAK = 5 : a1 mode") call msg_message (" JAK = 6 : K mode") call msg_message (" JAK = 7 : K* mode") call msg_message (" JAK = 8-13 : n pion modes") call msg_message (" JAK = 14-19 : K K pi and K pi pi modes") call msg_message (" JAK = 20-21 : eta pi pi; gamma pi pi modes") call msg_debug2 (D_TAUOLA, "Radiative corrections in decay ON(1),Off(0)") print *, " ITDKRC = ", ITDKRC call msg_debug2 (D_TAUOLA, "PHOTOS switch: ON(1), OFF(0)") print *, " IFPHOT = ", IFPHOT end if end subroutine wo_tauola_init_call end module tauola_interface !********************************************************************* !...PYTAUD !...Routine to handle the decay of a polarized tau lepton. !...Input: !...ITAU is the position where the decaying tau is stored in /PYJETS/. !...IORIG is the position where the mother of the tau is stored; !... is 0 when the mother is not stored. !...KFORIG is the flavour of the mother of the tau; !... is 0 when the mother is not known. !...Note that IORIG=0 does not necessarily imply KFORIG=0; !... e.g. in B hadron semileptonic decays the W propagator !... is not explicitly stored but the W code is still unambiguous. !...Output: !...NDECAY is the number of decay products in the current tau decay. !...These decay products should be added to the /PYJETS/ common block, !...in positions N+1 through N+NDECAY. For each product I you must !...give the flavour codes K(I,2) and the five-momenta P(I,1), P(I,2), !...P(I,3), P(I,4) and P(I,5). The rest will be stored automatically. subroutine pytaud (itau, iorig, kforig, ndecay) use tauola_interface !NODEP! implicit none integer itau,iorig,kforig integer ndecay !print *,"###############################################" !print *,"###### tauola pytaud was called ###############" !print *," itau,iorig,kforig=",itau,iorig,kforig !print *,"###############################################" call wo_tauola_pytaud (itau, iorig, kforig, ndecay) end subroutine pytaud Index: trunk/tests/functional_tests/Makefile.am =================================================================== --- trunk/tests/functional_tests/Makefile.am (revision 8406) +++ trunk/tests/functional_tests/Makefile.am (revision 8407) @@ -1,818 +1,820 @@ ## Makefile.am -- Makefile for executable WHIZARD test scripts ## ## Process this file with automake to produce Makefile.in ## ######################################################################## # # Copyright (C) 1999-2020 by # Wolfgang Kilian # Thorsten Ohl # Juergen Reuter # with contributions from # cf. main AUTHORS file # # WHIZARD is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # WHIZARD is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ######################################################################## WHIZARD_DRIVER = run_whizard.sh TESTS_DEFAULT = \ empty.run \ fatal.run \ cmdline_1.run \ structure_1.run \ structure_2.run \ structure_3.run \ structure_4.run \ structure_5.run \ structure_6.run \ structure_7.run \ structure_8.run \ vars.run \ extpar.run \ testproc_1.run \ testproc_2.run \ testproc_3.run \ testproc_4.run \ testproc_5.run \ testproc_6.run \ testproc_7.run \ testproc_8.run \ testproc_9.run \ testproc_10.run \ testproc_11.run \ testproc_12.run \ template_me_1.run \ template_me_2.run \ model_scheme_1.run \ rebuild_1.run \ rebuild_4.run \ susyhit.run \ helicity.run \ libraries_4.run \ job_id_1.run \ pack_1.run XFAIL_TESTS_DEFAULT = TESTS_REQ_FASTJET = \ analyze_4.run \ bjet_cluster.run \ openloops_12.run \ openloops_13.run TESTS_REQ_OCAML = \ libraries_1.run \ libraries_2.run \ libraries_3.run \ rebuild_2.run \ rebuild_3.run \ rebuild_5.run \ defaultcuts.run \ cuts.run \ model_change_1.run \ model_change_2.run \ model_change_3.run \ model_test.run \ job_id_2.run \ job_id_3.run \ job_id_4.run \ qedtest_1.run \ qedtest_2.run \ qedtest_3.run \ qedtest_4.run \ qedtest_5.run \ qedtest_6.run \ qedtest_7.run \ qedtest_8.run \ qedtest_9.run \ qedtest_10.run \ rambo_vamp_1.run \ rambo_vamp_2.run \ beam_setup_1.run \ beam_setup_2.run \ beam_setup_3.run \ beam_setup_4.run \ beam_setup_5.run \ qcdtest_1.run \ qcdtest_2.run \ qcdtest_3.run \ qcdtest_4.run \ qcdtest_5.run \ qcdtest_6.run \ observables_1.run \ observables_2.run \ event_weights_1.run \ event_weights_2.run \ event_eff_1.run \ event_eff_2.run \ event_dump_1.run \ event_dump_2.run \ event_failed_1.run \ reweight_1.run \ reweight_2.run \ reweight_3.run \ reweight_4.run \ reweight_5.run \ reweight_6.run \ reweight_7.run \ reweight_8.run \ reweight_9.run \ reweight_10.run \ analyze_1.run \ analyze_2.run \ analyze_5.run \ analyze_6.run \ colors.run \ colors_2.run \ colors_hgg.run \ alphas.run \ jets_xsec.run \ lhef_1.run \ lhef_2.run \ lhef_3.run \ lhef_4.run \ lhef_5.run \ lhef_6.run \ lhef_7.run \ lhef_8.run \ lhef_9.run \ lhef_10.run \ lhef_11.run \ stdhep_1.run \ stdhep_2.run \ stdhep_3.run \ stdhep_4.run \ stdhep_5.run \ stdhep_6.run \ select_1.run \ select_2.run \ fatal_beam_decay.run \ smtest_1.run \ smtest_2.run \ smtest_3.run \ smtest_4.run \ smtest_5.run \ smtest_6.run \ smtest_7.run \ smtest_8.run \ smtest_9.run \ smtest_10.run \ smtest_11.run \ smtest_12.run \ smtest_13.run \ smtest_14.run \ smtest_15.run \ smtest_16.run \ photon_isolation_1.run \ photon_isolation_2.run \ resonances_1.run \ resonances_2.run \ resonances_3.run \ resonances_4.run \ resonances_5.run \ resonances_6.run \ resonances_7.run \ resonances_8.run \ resonances_9.run \ resonances_10.run \ resonances_11.run \ resonances_12.run \ resonances_13.run \ mssmtest_1.run \ mssmtest_2.run \ mssmtest_3.run \ sm_cms_1.run \ ufo_1.run \ ufo_2.run \ ufo_3.run \ ufo_4.run \ ufo_5.run \ nlo_1.run \ nlo_2.run \ nlo_3.run \ nlo_4.run \ nlo_5.run \ nlo_6.run \ nlo_decay_1.run \ real_partition_1.run \ fks_res_1.run \ fks_res_2.run \ fks_res_3.run \ openloops_1.run \ openloops_2.run \ openloops_3.run \ openloops_4.run \ openloops_5.run \ openloops_6.run \ openloops_7.run \ openloops_8.run \ openloops_9.run \ openloops_10.run \ openloops_11.run \ recola_1.run \ recola_2.run \ recola_3.run \ recola_4.run \ recola_5.run \ recola_6.run \ recola_7.run \ recola_8.run \ recola_9.run \ powheg_1.run \ spincor_1.run \ show_1.run \ show_2.run \ show_3.run \ show_4.run \ show_5.run \ method_ovm_1.run \ multi_comp_1.run \ multi_comp_2.run \ multi_comp_3.run \ multi_comp_4.run \ flvsum_1.run \ br_redef_1.run \ decay_err_1.run \ decay_err_2.run \ decay_err_3.run \ polarized_1.run \ pdf_builtin.run \ ep_1.run \ ep_2.run \ ep_3.run \ circe1_1.run \ circe1_2.run \ circe1_3.run \ circe1_4.run \ circe1_5.run \ circe1_6.run \ circe1_7.run \ circe1_8.run \ circe1_9.run \ circe1_10.run \ circe1_photons_1.run \ circe1_photons_2.run \ circe1_photons_3.run \ circe1_photons_4.run \ circe1_photons_5.run \ circe1_errors_1.run \ circe2_1.run \ circe2_2.run \ circe2_3.run \ ewa_1.run \ ewa_2.run \ ewa_3.run \ ewa_4.run \ isr_1.run \ isr_2.run \ isr_3.run \ isr_4.run \ isr_5.run \ isr_6.run \ epa_1.run \ epa_2.run \ epa_3.run \ epa_4.run \ isr_epa_1.run \ ilc.run \ gaussian_1.run \ gaussian_2.run \ beam_events_1.run \ beam_events_2.run \ beam_events_3.run \ beam_events_4.run \ energy_scan_1.run \ restrictions.run \ process_log.run \ shower_err_1.run \ parton_shower_1.run \ parton_shower_2.run \ hadronize_1.run \ mlm_matching_fsr.run \ user_prc_threshold_1.run \ cascades2_phs_1.run \ cascades2_phs_2.run \ user_prc_threshold_2.run \ vamp2_1.run \ vamp2_2.run XFAIL_TESTS_REQ_OCAML = \ colors_hgg.run \ hadronize_1.run TESTS_REQ_HEPMC = \ hepmc_1.run \ hepmc_2.run \ hepmc_3.run \ hepmc_4.run \ hepmc_5.run \ hepmc_6.run \ hepmc_7.run \ hepmc_8.run \ hepmc_9.run \ hepmc_10.run XFAIL_TESTS_REQ_HEPMC = TESTS_REQ_LCIO = \ lcio_1.run \ lcio_2.run \ lcio_3.run \ lcio_4.run \ lcio_5.run \ lcio_6.run \ lcio_7.run \ lcio_8.run \ lcio_9.run \ lcio_10.run \ lcio_11.run XFAIL_TESTS_REQ_LCIO = TESTS_REQ_LHAPDF5 = \ lhapdf5.run TESTS_REQ_LHAPDF6 = \ lhapdf6.run XFAIL_TESTS_REQ_LHAPDF5 = XFAIL_TESTS_REQ_LHAPDF6 = TESTS_STATIC = \ static_1.run \ static_2.run XFAIL_TESTS_STATIC = TESTS_REQ_PYTHIA6 = \ pythia6_1.run \ pythia6_2.run \ pythia6_3.run \ pythia6_4.run \ tauola_1.run \ tauola_2.run \ + tauola_3.run \ isr_5.run \ mlm_pythia6_isr.run \ mlm_matching_isr.run XFAIL_TESTS_REQ_PYTHIA6 = TESTS_REQ_PYTHIA8 = # pythia8_1.run \ # pythia8_2.run XFAIL_TESTS_REQ_PYTHIA8 = TESTS_REQ_EV_ANA = \ analyze_3.run XFAIL_TESTS_REQ_EV_ANA = TESTS_REQ_GAMELAN = \ analyze_3.run TEST_DRIVERS_RUN = \ $(TESTS_DEFAULT) \ $(TESTS_REQ_OCAML) \ $(TESTS_REQ_LHAPDF5) \ $(TESTS_REQ_LHAPDF6) \ $(TESTS_REQ_HEPMC) \ $(TESTS_REQ_LCIO) \ $(TESTS_REQ_FASTJET) \ $(TESTS_REQ_PYTHIA6) \ $(TESTS_REQ_EV_ANA) \ $(TESTS_STATIC) TEST_DRIVERS_SH = $(TEST_DRIVERS_RUN:.run=.sh) ######################################################################## TESTS = XFAIL_TESTS = TESTS_SRC = TESTS += $(TESTS_DEFAULT) XFAIL_TESTS += $(XFAIL_TESTS_DEFAULT) TESTS += $(TESTS_REQ_OCAML) XFAIL_TESTS += $(XFAIL_TESTS_REQ_OCAML) TESTS += $(TESTS_REQ_HEPMC) XFAIL_TESTS += $(XFAIL_TESTS_REQ_HEPMC) TESTS += $(TESTS_REQ_LCIO) XFAIL_TESTS += $(XFAIL_TESTS_REQ_LCIO) TESTS += $(TESTS_REQ_FASTJET) XFAIL_TESTS += $(XFAIL_TESTS_REQ_FASTJET) TESTS += $(TESTS_REQ_LHAPDF5) XFAIL_TESTS += $(XFAIL_TESTS_REQ_LHAPDF5) TESTS += $(TESTS_REQ_LHAPDF6) XFAIL_TESTS += $(XFAIL_TESTS_REQ_LHAPDF6) TESTS += $(TESTS_REQ_PYTHIA6) XFAIL_TESTS += $(XFAIL_TESTS_REQ_PYTHIA6) TESTS += $(TESTS_REQ_PYTHIA8) XFAIL_TESTS += $(XFAIL_TESTS_REQ_PYTHIA8) TESTS += $(TESTS_REQ_EV_ANA) XFAIL_TESTS += $(XFAIL_TESTS_REQ_EV_ANA) TESTS += $(TESTS_STATIC) XFAIL_TESTS += $(XFAIL_TESTS_STATIC) EXTRA_DIST = $(TEST_DRIVERS_SH) \ $(TESTS_SRC) ######################################################################## VPATH = $(srcdir) SUFFIXES = .sh .run .sh.run: @rm -f $@ @if test -f $(top_builddir)/share/tests/functional_tests/$*.sin; then \ $(SED) 's|@script@|$(top_builddir)/share/tests/functional_tests/$*|g' $< > $@; \ elif test -f $(top_srcdir)/share/tests/functional_tests/$*.sin; then \ $(SED) 's|@script@|$(top_srcdir)/share/tests/functional_tests/$*|g' $< > $@; \ else \ echo "$*.sin not found!" 1>&2; \ exit 2; \ fi @chmod +x $@ cmdline_1.run: cmdline_1_a.sin cmdline_1_b.sin cmdline_1_a.sin: $(top_builddir)/share/tests/functional_tests/cmdline_1_a.sin cp $< $@ cmdline_1_b.sin: $(top_builddir)/share/tests/functional_tests/cmdline_1_b.sin cp $< $@ structure_2.run: structure_2_inc.sin structure_2_inc.sin: $(top_builddir)/share/tests/functional_tests/structure_2_inc.sin cp $< $@ testproc_3.run: testproc_3.phs testproc_3.phs: $(top_builddir)/share/tests/functional_tests/testproc_3.phs cp $< $@ static_1.run: static_1.exe.sin static_1.exe.sin: $(top_builddir)/share/tests/functional_tests/static_1.exe.sin cp $< $@ static_2.run: static_2.exe.sin static_2.exe.sin: $(top_builddir)/share/tests/functional_tests/static_2.exe.sin cp $< $@ susyhit.run: susyhit.in model_test.run: tdefs.$(FC_MODULE_EXT) tglue.$(FC_MODULE_EXT) \ threeshl.$(FC_MODULE_EXT) tscript.$(FC_MODULE_EXT) tdefs.mod: $(top_builddir)/src/models/threeshl_bundle/tdefs.$(FC_MODULE_EXT) cp $< $@ tglue.mod: $(top_builddir)/src/models/threeshl_bundle/tglue.$(FC_MODULE_EXT) cp $< $@ tscript.mod: $(top_builddir)/src/models/threeshl_bundle/tscript.$(FC_MODULE_EXT) cp $< $@ threeshl.mod: $(top_builddir)/src/models/threeshl_bundle/threeshl.$(FC_MODULE_EXT) cp $< $@ WT_OCAML_NATIVE_EXT=opt if OCAML_AVAILABLE OMEGA_QED = $(top_builddir)/omega/bin/omega_QED.$(WT_OCAML_NATIVE_EXT) OMEGA_QCD = $(top_builddir)/omega/bin/omega_QCD.$(WT_OCAML_NATIVE_EXT) OMEGA_MSSM = $(top_builddir)/omega/bin/omega_MSSM.$(WT_OCAML_NATIVE_EXT) omega_MSSM.$(WT_OMEGA_CACHE_SUFFIX): $(OMEGA_MSSM) $(OMEGA_MSSM) -initialize . UFO_TAG_FILE = __init__.py UFO_MODELPATH = ../models/UFO ufo_1.run: ufo_1_SM/$(UFO_TAG_FILE) ufo_2.run: ufo_2_SM/$(UFO_TAG_FILE) ufo_3.run: ufo_3_models/ufo_3_SM/$(UFO_TAG_FILE) ufo_4.run: ufo_4_models/ufo_4_SM/$(UFO_TAG_FILE) ufo_5.run: ufo_5_SM/$(UFO_TAG_FILE) ufo_1_SM/$(UFO_TAG_FILE): $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE) mkdir -p ufo_1_SM cp $(UFO_MODELPATH)/SM/*.py ufo_1_SM ufo_2_SM/$(UFO_TAG_FILE): $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE) mkdir -p ufo_2_SM cp $(UFO_MODELPATH)/SM/*.py ufo_2_SM ufo_3_models/ufo_3_SM/$(UFO_TAG_FILE): $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE) mkdir -p ufo_3_models/ufo_3_SM cp $(UFO_MODELPATH)/SM/*.py ufo_3_models/ufo_3_SM ufo_4_models/ufo_4_SM/$(UFO_TAG_FILE): $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE) mkdir -p ufo_4_models/ufo_4_SM cp $(UFO_MODELPATH)/SM/*.py ufo_4_models/ufo_4_SM ufo_5_SM/$(UFO_TAG_FILE): $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE) mkdir -p ufo_5_SM cp $(UFO_MODELPATH)/SM/*.py ufo_5_SM ufo_5.run: ufo_5_test.slha ufo_5_test.slha: $(top_builddir)/share/tests/functional_tests/ufo_5_test.slha cp $< $@ $(UFO_MODELPATH)/SM/$(UFO_TAG_FILE): $(top_srcdir)/omega/tests/UFO/SM/$(UFO_TAG_FILE) $(MAKE) -C $(UFO_MODELPATH)/SM all endif OCAML_AVAILABLE if MPOST_AVAILABLE $(TESTS_REQ_GAMELAN): gamelan.sty gamelan.sty: $(top_builddir)/src/gamelan/gamelan.sty cp $< $@ $(top_builddir)/src/gamelan/gamelan.sty: $(MAKE) -C $(top_builddir)/src/gamelan gamelan.sty endif noinst_PROGRAMS = if OCAML_AVAILABLE noinst_PROGRAMS += resonances_1_count resonances_1_count_SOURCES = resonances_1_count.f90 resonances_1.run: resonances_1_count noinst_PROGRAMS += resonances_2_count resonances_2_count_SOURCES = resonances_2_count.f90 resonances_2.run: resonances_2_count noinst_PROGRAMS += resonances_3_count resonances_3_count_SOURCES = resonances_3_count.f90 resonances_3.run: resonances_3_count noinst_PROGRAMS += resonances_4_count resonances_4_count_SOURCES = resonances_4_count.f90 resonances_4.run: resonances_4_count noinst_PROGRAMS += resonances_9_count resonances_9_count_SOURCES = resonances_9_count.f90 resonances_9.run: resonances_9_count noinst_PROGRAMS += resonances_10_count resonances_10_count_SOURCES = resonances_10_count.f90 resonances_10.run: resonances_10_count noinst_PROGRAMS += resonances_11_count resonances_11_count_SOURCES = resonances_11_count.f90 resonances_11.run: resonances_11_count noinst_PROGRAMS += epa_2_count epa_2_count_SOURCES = epa_2_count.f90 epa_2.run: epa_2_count noinst_PROGRAMS += isr_epa_1_count isr_epa_1_count_SOURCES = isr_epa_1_count.f90 isr_epa_1.run: isr_epa_1_count noinst_PROGRAMS += isr_6_digest isr_6_digest_SOURCES = isr_6_digest.f90 isr_6.run: isr_6_digest noinst_PROGRAMS += analyze_6_check analyze_6_check_SOURCES = analyze_6_check.f90 analyze_6.run: analyze_6_check endif if HEPMC_AVAILABLE TESTS_SRC += $(hepmc_6_rd_SOURCES) noinst_PROGRAMS += hepmc_6_rd if HEPMC_IS_VERSION3 hepmc_6_rd_SOURCES = hepmc3_6_rd.cpp else hepmc_6_rd_SOURCES = hepmc2_6_rd.cpp endif hepmc_6_rd_CXXFLAGS = $(HEPMC_INCLUDES) $(AM_CXXFLAGS) hepmc_6_rd_LDADD = $(LDFLAGS_HEPMC) hepmc_6.run: hepmc_6_rd endif if LCIO_AVAILABLE TESTS_SRC += $(lcio_rd_SOURCES) noinst_PROGRAMS += lcio_rd lcio_rd_SOURCES = lcio_rd.cpp lcio_rd_CXXFLAGS = $(LCIO_INCLUDES) $(AM_CXXFLAGS) lcio_rd_LDADD = $(LDFLAGS_LCIO) lcio_1.run: lcio_rd lcio_2.run: lcio_rd lcio_3.run: lcio_rd lcio_4.run: lcio_rd lcio_5.run: lcio_rd lcio_10.run: lcio_rd lcio_11.run: lcio_rd endif stdhep_4.run: stdhep_rd stdhep_5.run: stdhep_rd stdhep_6.run: stdhep_rd polarized_1.run: stdhep_rd tauola_1.run: stdhep_rd tauola_2.run: stdhep_rd +tauola_3.run: stdhep_rd stdhep_rd: $(top_builddir)/src/xdr/stdhep_rd cp $< $@ susyhit.in: $(top_builddir)/share/tests/functional_tests/susyhit.in cp $< $@ BUILT_SOURCES = \ TESTFLAG \ HEPMC2_FLAG \ HEPMC3_FLAG \ LCIO_FLAG \ FASTJET_FLAG \ LHAPDF5_FLAG \ LHAPDF6_FLAG \ GAMELAN_FLAG \ MPI_FLAG \ EVENT_ANALYSIS_FLAG \ OCAML_FLAG \ PYTHIA6_FLAG \ PYTHIA8_FLAG \ OPENLOOPS_FLAG \ RECOLA_FLAG \ GZIP_FLAG \ STATIC_FLAG \ ref-output # If this file is found in the working directory, WHIZARD # will use the paths for the uninstalled version (source/build tree), # otherwise it uses the installed version TESTFLAG: touch $@ FASTJET_FLAG: if FASTJET_AVAILABLE touch $@ endif HEPMC2_FLAG: if HEPMC2_AVAILABLE touch $@ endif HEPMC3_FLAG: if HEPMC3_AVAILABLE touch $@ endif LCIO_FLAG: if LCIO_AVAILABLE touch $@ endif LHAPDF5_FLAG: if LHAPDF5_AVAILABLE touch $@ endif LHAPDF6_FLAG: if LHAPDF6_AVAILABLE touch $@ endif GAMELAN_FLAG: if MPOST_AVAILABLE touch $@ endif MPI_FLAG: if FC_USE_MPI touch $@ endif OCAML_FLAG: if OCAML_AVAILABLE touch $@ endif PYTHIA6_FLAG: if PYTHIA6_AVAILABLE touch $@ endif PYTHIA8_FLAG: if PYTHIA8_AVAILABLE touch $@ endif OPENLOOPS_FLAG: if OPENLOOPS_AVAILABLE touch $@ endif RECOLA_FLAG: if RECOLA_AVAILABLE touch $@ endif EVENT_ANALYSIS_FLAG: if EVENT_ANALYSIS_AVAILABLE touch $@ endif GZIP_FLAG: if GZIP_AVAILABLE touch $@ endif STATIC_FLAG: if STATIC_AVAILABLE touch $@ endif # The reference output files are in the source directory. Copy them here. if FC_QUAD ref-output: $(top_srcdir)/share/tests/functional_tests/ref-output mkdir -p ref-output for f in $> $script.log + ./stdhep_rd ${script}_p1.ev4.hep 1 >> ${script}.log + mv ${script}.log ${script}.log.tmp + cat ${script}.log.tmp | sed -e 's/total blocks.*/total blocks: [...]/' -e 's/WHIZARD 2.*/WHIZARD [version]/' -e 's/date: .*/date: [...]/' -e 's/[ -][0-9].[0-9][0-9]e-0[5-9]/ 0.00e+00/g' -e 's/[ -][0-9].[0-9][0-9]e-1[0-9]/ 0.00e+00/g' > ${script}.log + diff ref-output/${script}.ref ${script}.log +else + echo "|=============================================================================|" + echo "No O'Mega matrix elements available and/or PYTHIA6 disabled, test skipped" + exit 77 +fi Index: trunk/share/tests/Makefile.am =================================================================== --- trunk/share/tests/Makefile.am (revision 8406) +++ trunk/share/tests/Makefile.am (revision 8407) @@ -1,1485 +1,1489 @@ ## Makefile.am -- Makefile for WHIZARD tests ## ## Process this file with automake to produce Makefile.in ## ######################################################################## # # Copyright (C) 1999-2020 by # Wolfgang Kilian # Thorsten Ohl # Juergen Reuter # with contributions from # cf. main AUTHORS file # # WHIZARD is free software; you can redistribute it and/or modify it # under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # WHIZARD is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # ######################################################################## EXTRA_DIST = \ $(TESTSUITE_MACROS) $(TESTSUITES_M4) $(TESTSUITES_SIN) \ $(TESTSUITE_TOOLS) \ $(REF_OUTPUT_FILES) \ cascades2_lexer_1.fds \ cascades2_1.fds \ cascades2_2.fds \ functional_tests/structure_2_inc.sin functional_tests/testproc_3.phs \ functional_tests/susyhit.in \ functional_tests/ufo_5_test.slha \ ext_tests_nmssm/nmssm.slha TESTSUITE_MACROS = testsuite.m4 TESTSUITE_TOOLS = \ check-debug-output.py \ check-debug-output-hadro.py \ check-hepmc-weights.py \ compare-integrals.py \ compare-integrals-multi.py \ compare-methods.py \ compare-histograms.py REF_OUTPUT_FILES = \ extra_integration_results.dat \ $(REF_OUTPUT_FILES_BASE) $(REF_OUTPUT_FILES_DOUBLE) \ $(REF_OUTPUT_FILES_PREC) $(REF_OUTPUT_FILES_EXT) \ $(REF_OUTPUT_FILES_QUAD) REF_OUTPUT_FILES_BASE = \ unit_tests/ref-output/analysis_1.ref \ unit_tests/ref-output/pdg_arrays_1.ref \ unit_tests/ref-output/pdg_arrays_2.ref \ unit_tests/ref-output/pdg_arrays_3.ref \ unit_tests/ref-output/pdg_arrays_4.ref \ unit_tests/ref-output/pdg_arrays_5.ref \ unit_tests/ref-output/expressions_1.ref \ unit_tests/ref-output/expressions_2.ref \ unit_tests/ref-output/expressions_3.ref \ unit_tests/ref-output/expressions_4.ref \ unit_tests/ref-output/su_algebra_1.ref \ unit_tests/ref-output/su_algebra_2.ref \ unit_tests/ref-output/su_algebra_3.ref \ unit_tests/ref-output/su_algebra_4.ref \ unit_tests/ref-output/bloch_vectors_1.ref \ unit_tests/ref-output/bloch_vectors_2.ref \ unit_tests/ref-output/bloch_vectors_3.ref \ unit_tests/ref-output/bloch_vectors_4.ref \ unit_tests/ref-output/bloch_vectors_5.ref \ unit_tests/ref-output/bloch_vectors_6.ref \ unit_tests/ref-output/bloch_vectors_7.ref \ unit_tests/ref-output/polarization_1.ref \ unit_tests/ref-output/polarization_2.ref \ unit_tests/ref-output/beam_1.ref \ unit_tests/ref-output/beam_2.ref \ unit_tests/ref-output/beam_3.ref \ unit_tests/ref-output/md5_1.ref \ unit_tests/ref-output/cputime_1.ref \ unit_tests/ref-output/cputime_2.ref \ unit_tests/ref-output/lexer_1.ref \ unit_tests/ref-output/parse_1.ref \ unit_tests/ref-output/color_1.ref \ unit_tests/ref-output/color_2.ref \ unit_tests/ref-output/os_interface_1.ref \ unit_tests/ref-output/evaluator_1.ref \ unit_tests/ref-output/evaluator_2.ref \ unit_tests/ref-output/evaluator_3.ref \ unit_tests/ref-output/evaluator_4.ref \ unit_tests/ref-output/format_1.ref \ unit_tests/ref-output/sorting_1.ref \ unit_tests/ref-output/grids_1.ref \ unit_tests/ref-output/grids_2.ref \ unit_tests/ref-output/grids_3.ref \ unit_tests/ref-output/grids_4.ref \ unit_tests/ref-output/grids_5.ref \ unit_tests/ref-output/solver_1.ref \ unit_tests/ref-output/state_matrix_1.ref \ unit_tests/ref-output/state_matrix_2.ref \ unit_tests/ref-output/state_matrix_3.ref \ unit_tests/ref-output/state_matrix_4.ref \ unit_tests/ref-output/state_matrix_5.ref \ unit_tests/ref-output/state_matrix_6.ref \ unit_tests/ref-output/state_matrix_7.ref \ unit_tests/ref-output/interaction_1.ref \ unit_tests/ref-output/xml_1.ref \ unit_tests/ref-output/xml_2.ref \ unit_tests/ref-output/xml_3.ref \ unit_tests/ref-output/xml_4.ref \ unit_tests/ref-output/sm_qcd_1.ref \ unit_tests/ref-output/sm_physics_1.ref \ unit_tests/ref-output/sm_physics_2.ref \ unit_tests/ref-output/models_1.ref \ unit_tests/ref-output/models_2.ref \ unit_tests/ref-output/models_3.ref \ unit_tests/ref-output/models_4.ref \ unit_tests/ref-output/models_5.ref \ unit_tests/ref-output/models_6.ref \ unit_tests/ref-output/models_7.ref \ unit_tests/ref-output/models_8.ref \ unit_tests/ref-output/models_9.ref \ unit_tests/ref-output/models_10.ref \ unit_tests/ref-output/auto_components_1.ref \ unit_tests/ref-output/auto_components_2.ref \ unit_tests/ref-output/auto_components_3.ref \ unit_tests/ref-output/radiation_generator_1.ref \ unit_tests/ref-output/radiation_generator_2.ref \ unit_tests/ref-output/radiation_generator_3.ref \ unit_tests/ref-output/radiation_generator_4.ref \ unit_tests/ref-output/particles_1.ref \ unit_tests/ref-output/particles_2.ref \ unit_tests/ref-output/particles_3.ref \ unit_tests/ref-output/particles_4.ref \ unit_tests/ref-output/particles_5.ref \ unit_tests/ref-output/particles_6.ref \ unit_tests/ref-output/particles_7.ref \ unit_tests/ref-output/particles_8.ref \ unit_tests/ref-output/particles_9.ref \ unit_tests/ref-output/beam_structures_1.ref \ unit_tests/ref-output/beam_structures_2.ref \ unit_tests/ref-output/beam_structures_3.ref \ unit_tests/ref-output/beam_structures_4.ref \ unit_tests/ref-output/beam_structures_5.ref \ unit_tests/ref-output/beam_structures_6.ref \ unit_tests/ref-output/sf_aux_1.ref \ unit_tests/ref-output/sf_aux_2.ref \ unit_tests/ref-output/sf_aux_3.ref \ unit_tests/ref-output/sf_aux_4.ref \ unit_tests/ref-output/sf_mappings_1.ref \ unit_tests/ref-output/sf_mappings_2.ref \ unit_tests/ref-output/sf_mappings_3.ref \ unit_tests/ref-output/sf_mappings_4.ref \ unit_tests/ref-output/sf_mappings_5.ref \ unit_tests/ref-output/sf_mappings_6.ref \ unit_tests/ref-output/sf_mappings_7.ref \ unit_tests/ref-output/sf_mappings_8.ref \ unit_tests/ref-output/sf_mappings_9.ref \ unit_tests/ref-output/sf_mappings_10.ref \ unit_tests/ref-output/sf_mappings_11.ref \ unit_tests/ref-output/sf_mappings_12.ref \ unit_tests/ref-output/sf_mappings_13.ref \ unit_tests/ref-output/sf_mappings_14.ref \ unit_tests/ref-output/sf_mappings_15.ref \ unit_tests/ref-output/sf_mappings_16.ref \ unit_tests/ref-output/sf_base_1.ref \ unit_tests/ref-output/sf_base_2.ref \ unit_tests/ref-output/sf_base_3.ref \ unit_tests/ref-output/sf_base_4.ref \ unit_tests/ref-output/sf_base_5.ref \ unit_tests/ref-output/sf_base_6.ref \ unit_tests/ref-output/sf_base_7.ref \ unit_tests/ref-output/sf_base_8.ref \ unit_tests/ref-output/sf_base_9.ref \ unit_tests/ref-output/sf_base_10.ref \ unit_tests/ref-output/sf_base_11.ref \ unit_tests/ref-output/sf_base_12.ref \ unit_tests/ref-output/sf_base_13.ref \ unit_tests/ref-output/sf_base_14.ref \ unit_tests/ref-output/sf_pdf_builtin_1.ref \ unit_tests/ref-output/sf_pdf_builtin_2.ref \ unit_tests/ref-output/sf_pdf_builtin_3.ref \ unit_tests/ref-output/sf_lhapdf5_1.ref \ unit_tests/ref-output/sf_lhapdf5_2.ref \ unit_tests/ref-output/sf_lhapdf5_3.ref \ unit_tests/ref-output/sf_lhapdf6_1.ref \ unit_tests/ref-output/sf_lhapdf6_2.ref \ unit_tests/ref-output/sf_lhapdf6_3.ref \ unit_tests/ref-output/sf_isr_1.ref \ unit_tests/ref-output/sf_isr_2.ref \ unit_tests/ref-output/sf_isr_3.ref \ unit_tests/ref-output/sf_isr_4.ref \ unit_tests/ref-output/sf_isr_5.ref \ unit_tests/ref-output/sf_epa_1.ref \ unit_tests/ref-output/sf_epa_2.ref \ unit_tests/ref-output/sf_epa_3.ref \ unit_tests/ref-output/sf_epa_4.ref \ unit_tests/ref-output/sf_epa_5.ref \ unit_tests/ref-output/sf_ewa_1.ref \ unit_tests/ref-output/sf_ewa_2.ref \ unit_tests/ref-output/sf_ewa_3.ref \ unit_tests/ref-output/sf_ewa_4.ref \ unit_tests/ref-output/sf_ewa_5.ref \ unit_tests/ref-output/sf_circe1_1.ref \ unit_tests/ref-output/sf_circe1_2.ref \ unit_tests/ref-output/sf_circe1_3.ref \ unit_tests/ref-output/sf_circe2_1.ref \ unit_tests/ref-output/sf_circe2_2.ref \ unit_tests/ref-output/sf_circe2_3.ref \ unit_tests/ref-output/sf_gaussian_1.ref \ unit_tests/ref-output/sf_gaussian_2.ref \ unit_tests/ref-output/sf_beam_events_1.ref \ unit_tests/ref-output/sf_beam_events_2.ref \ unit_tests/ref-output/sf_beam_events_3.ref \ unit_tests/ref-output/sf_escan_1.ref \ unit_tests/ref-output/sf_escan_2.ref \ unit_tests/ref-output/phs_base_1.ref \ unit_tests/ref-output/phs_base_2.ref \ unit_tests/ref-output/phs_base_3.ref \ unit_tests/ref-output/phs_base_4.ref \ unit_tests/ref-output/phs_base_5.ref \ unit_tests/ref-output/phs_none_1.ref \ unit_tests/ref-output/phs_single_1.ref \ unit_tests/ref-output/phs_single_2.ref \ unit_tests/ref-output/phs_single_3.ref \ unit_tests/ref-output/phs_single_4.ref \ unit_tests/ref-output/phs_rambo_1.ref \ unit_tests/ref-output/phs_rambo_2.ref \ unit_tests/ref-output/phs_rambo_3.ref \ unit_tests/ref-output/phs_rambo_4.ref \ unit_tests/ref-output/resonances_1.ref \ unit_tests/ref-output/resonances_2.ref \ unit_tests/ref-output/resonances_3.ref \ unit_tests/ref-output/resonances_4.ref \ unit_tests/ref-output/resonances_5.ref \ unit_tests/ref-output/resonances_6.ref \ unit_tests/ref-output/resonances_7.ref \ unit_tests/ref-output/phs_tree_1.ref \ unit_tests/ref-output/phs_tree_2.ref \ unit_tests/ref-output/phs_forest_1.ref \ unit_tests/ref-output/phs_forest_2.ref \ unit_tests/ref-output/phs_wood_1.ref \ unit_tests/ref-output/phs_wood_2.ref \ unit_tests/ref-output/phs_wood_3.ref \ unit_tests/ref-output/phs_wood_4.ref \ unit_tests/ref-output/phs_wood_5.ref \ unit_tests/ref-output/phs_wood_6.ref \ unit_tests/ref-output/phs_wood_vis_1.ref \ unit_tests/ref-output/phs_fks_generator_1.ref \ unit_tests/ref-output/phs_fks_generator_2.ref \ unit_tests/ref-output/phs_fks_generator_3.ref \ unit_tests/ref-output/phs_fks_generator_4.ref \ unit_tests/ref-output/phs_fks_generator_5.ref \ unit_tests/ref-output/phs_fks_generator_6.ref \ unit_tests/ref-output/phs_fks_generator_7.ref \ unit_tests/ref-output/fks_regions_1.ref \ unit_tests/ref-output/fks_regions_2.ref \ unit_tests/ref-output/fks_regions_3.ref \ unit_tests/ref-output/fks_regions_4.ref \ unit_tests/ref-output/fks_regions_5.ref \ unit_tests/ref-output/fks_regions_6.ref \ unit_tests/ref-output/fks_regions_7.ref \ unit_tests/ref-output/fks_regions_8.ref \ unit_tests/ref-output/real_subtraction_1.ref \ unit_tests/ref-output/prc_recola_1.ref \ unit_tests/ref-output/prc_recola_2.ref \ unit_tests/ref-output/rng_base_1.ref \ unit_tests/ref-output/rng_base_2.ref \ unit_tests/ref-output/rng_tao_1.ref \ unit_tests/ref-output/rng_tao_2.ref \ unit_tests/ref-output/rng_stream_1.ref \ unit_tests/ref-output/rng_stream_2.ref \ unit_tests/ref-output/rng_stream_3.ref \ unit_tests/ref-output/selectors_1.ref \ unit_tests/ref-output/selectors_2.ref \ unit_tests/ref-output/vegas_1.ref \ unit_tests/ref-output/vegas_2.ref \ unit_tests/ref-output/vegas_3.ref \ unit_tests/ref-output/vegas_4.ref \ unit_tests/ref-output/vegas_5.ref \ unit_tests/ref-output/vegas_6.ref \ unit_tests/ref-output/vamp2_1.ref \ unit_tests/ref-output/vamp2_2.ref \ unit_tests/ref-output/vamp2_3.ref \ unit_tests/ref-output/vamp2_4.ref \ unit_tests/ref-output/vamp2_5.ref \ unit_tests/ref-output/mci_base_1.ref \ unit_tests/ref-output/mci_base_2.ref \ unit_tests/ref-output/mci_base_3.ref \ unit_tests/ref-output/mci_base_4.ref \ unit_tests/ref-output/mci_base_5.ref \ unit_tests/ref-output/mci_base_6.ref \ unit_tests/ref-output/mci_base_7.ref \ unit_tests/ref-output/mci_base_8.ref \ unit_tests/ref-output/mci_none_1.ref \ unit_tests/ref-output/mci_midpoint_1.ref \ unit_tests/ref-output/mci_midpoint_2.ref \ unit_tests/ref-output/mci_midpoint_3.ref \ unit_tests/ref-output/mci_midpoint_4.ref \ unit_tests/ref-output/mci_midpoint_5.ref \ unit_tests/ref-output/mci_midpoint_6.ref \ unit_tests/ref-output/mci_midpoint_7.ref \ unit_tests/ref-output/mci_vamp_1.ref \ unit_tests/ref-output/mci_vamp_2.ref \ unit_tests/ref-output/mci_vamp_3.ref \ unit_tests/ref-output/mci_vamp_4.ref \ unit_tests/ref-output/mci_vamp_5.ref \ unit_tests/ref-output/mci_vamp_6.ref \ unit_tests/ref-output/mci_vamp_7.ref \ unit_tests/ref-output/mci_vamp_8.ref \ unit_tests/ref-output/mci_vamp_9.ref \ unit_tests/ref-output/mci_vamp_10.ref \ unit_tests/ref-output/mci_vamp_11.ref \ unit_tests/ref-output/mci_vamp_12.ref \ unit_tests/ref-output/mci_vamp_13.ref \ unit_tests/ref-output/mci_vamp_14.ref \ unit_tests/ref-output/mci_vamp_15.ref \ unit_tests/ref-output/mci_vamp_16.ref \ unit_tests/ref-output/mci_vamp2_1.ref \ unit_tests/ref-output/mci_vamp2_2.ref \ unit_tests/ref-output/mci_vamp2_3.ref \ unit_tests/ref-output/integration_results_1.ref \ unit_tests/ref-output/integration_results_2.ref \ unit_tests/ref-output/integration_results_3.ref \ unit_tests/ref-output/integration_results_4.ref \ unit_tests/ref-output/integration_results_5.ref \ unit_tests/ref-output/prclib_interfaces_1.ref \ unit_tests/ref-output/prclib_interfaces_2.ref \ unit_tests/ref-output/prclib_interfaces_3.ref \ unit_tests/ref-output/prclib_interfaces_4.ref \ unit_tests/ref-output/prclib_interfaces_5.ref \ unit_tests/ref-output/prclib_interfaces_6.ref \ unit_tests/ref-output/prclib_interfaces_7.ref \ unit_tests/ref-output/particle_specifiers_1.ref \ unit_tests/ref-output/particle_specifiers_2.ref \ unit_tests/ref-output/process_libraries_1.ref \ unit_tests/ref-output/process_libraries_2.ref \ unit_tests/ref-output/process_libraries_3.ref \ unit_tests/ref-output/process_libraries_4.ref \ unit_tests/ref-output/process_libraries_5.ref \ unit_tests/ref-output/process_libraries_6.ref \ unit_tests/ref-output/process_libraries_7.ref \ unit_tests/ref-output/process_libraries_8.ref \ unit_tests/ref-output/prclib_stacks_1.ref \ unit_tests/ref-output/prclib_stacks_2.ref \ unit_tests/ref-output/slha_1.ref \ unit_tests/ref-output/slha_2.ref \ unit_tests/ref-output/prc_test_1.ref \ unit_tests/ref-output/prc_test_2.ref \ unit_tests/ref-output/prc_test_3.ref \ unit_tests/ref-output/prc_test_4.ref \ unit_tests/ref-output/prc_template_me_1.ref \ unit_tests/ref-output/prc_template_me_2.ref \ unit_tests/ref-output/prc_omega_1.ref \ unit_tests/ref-output/prc_omega_2.ref \ unit_tests/ref-output/prc_omega_3.ref \ unit_tests/ref-output/prc_omega_4.ref \ unit_tests/ref-output/prc_omega_5.ref \ unit_tests/ref-output/prc_omega_6.ref \ unit_tests/ref-output/prc_omega_diags_1.ref \ unit_tests/ref-output/parton_states_1.ref \ unit_tests/ref-output/subevt_expr_1.ref \ unit_tests/ref-output/subevt_expr_2.ref \ unit_tests/ref-output/processes_1.ref \ unit_tests/ref-output/processes_2.ref \ unit_tests/ref-output/processes_3.ref \ unit_tests/ref-output/processes_4.ref \ unit_tests/ref-output/processes_5.ref \ unit_tests/ref-output/processes_6.ref \ unit_tests/ref-output/processes_7.ref \ unit_tests/ref-output/processes_8.ref \ unit_tests/ref-output/processes_9.ref \ unit_tests/ref-output/processes_10.ref \ unit_tests/ref-output/processes_11.ref \ unit_tests/ref-output/processes_12.ref \ unit_tests/ref-output/processes_13.ref \ unit_tests/ref-output/processes_14.ref \ unit_tests/ref-output/processes_15.ref \ unit_tests/ref-output/processes_16.ref \ unit_tests/ref-output/processes_17.ref \ unit_tests/ref-output/processes_18.ref \ unit_tests/ref-output/processes_19.ref \ unit_tests/ref-output/process_stacks_1.ref \ unit_tests/ref-output/process_stacks_2.ref \ unit_tests/ref-output/process_stacks_3.ref \ unit_tests/ref-output/process_stacks_4.ref \ unit_tests/ref-output/cascades_1.ref \ unit_tests/ref-output/cascades_2.ref \ unit_tests/ref-output/cascades2_lexer_1.ref \ unit_tests/ref-output/cascades2_1.ref \ unit_tests/ref-output/cascades2_2.ref \ unit_tests/ref-output/event_transforms_1.ref \ unit_tests/ref-output/recoil_kinematics_1.ref \ unit_tests/ref-output/recoil_kinematics_2.ref \ unit_tests/ref-output/recoil_kinematics_3.ref \ unit_tests/ref-output/recoil_kinematics_4.ref \ unit_tests/ref-output/recoil_kinematics_5.ref \ unit_tests/ref-output/recoil_kinematics_6.ref \ unit_tests/ref-output/resonance_insertion_1.ref \ unit_tests/ref-output/resonance_insertion_2.ref \ unit_tests/ref-output/resonance_insertion_3.ref \ unit_tests/ref-output/resonance_insertion_4.ref \ unit_tests/ref-output/resonance_insertion_5.ref \ unit_tests/ref-output/resonance_insertion_6.ref \ unit_tests/ref-output/isr_handler_1.ref \ unit_tests/ref-output/isr_handler_2.ref \ unit_tests/ref-output/isr_handler_3.ref \ unit_tests/ref-output/epa_handler_1.ref \ unit_tests/ref-output/epa_handler_2.ref \ unit_tests/ref-output/epa_handler_3.ref \ unit_tests/ref-output/decays_1.ref \ unit_tests/ref-output/decays_2.ref \ unit_tests/ref-output/decays_3.ref \ unit_tests/ref-output/decays_4.ref \ unit_tests/ref-output/decays_5.ref \ unit_tests/ref-output/decays_6.ref \ unit_tests/ref-output/shower_1.ref \ unit_tests/ref-output/shower_2.ref \ unit_tests/ref-output/shower_base_1.ref \ unit_tests/ref-output/events_1.ref \ unit_tests/ref-output/events_2.ref \ unit_tests/ref-output/events_3.ref \ unit_tests/ref-output/events_4.ref \ unit_tests/ref-output/events_5.ref \ unit_tests/ref-output/events_6.ref \ unit_tests/ref-output/events_7.ref \ unit_tests/ref-output/hep_events_1.ref \ unit_tests/ref-output/eio_data_1.ref \ unit_tests/ref-output/eio_data_2.ref \ unit_tests/ref-output/eio_base_1.ref \ unit_tests/ref-output/eio_direct_1.ref \ unit_tests/ref-output/eio_raw_1.ref \ unit_tests/ref-output/eio_raw_2.ref \ unit_tests/ref-output/eio_checkpoints_1.ref \ unit_tests/ref-output/eio_lhef_1.ref \ unit_tests/ref-output/eio_lhef_2.ref \ unit_tests/ref-output/eio_lhef_3.ref \ unit_tests/ref-output/eio_lhef_4.ref \ unit_tests/ref-output/eio_lhef_5.ref \ unit_tests/ref-output/eio_lhef_6.ref \ unit_tests/ref-output/eio_stdhep_1.ref \ unit_tests/ref-output/eio_stdhep_2.ref \ unit_tests/ref-output/eio_stdhep_3.ref \ unit_tests/ref-output/eio_stdhep_4.ref \ unit_tests/ref-output/eio_hepmc2_1.ref \ unit_tests/ref-output/eio_hepmc2_2.ref \ unit_tests/ref-output/eio_hepmc2_3.ref \ unit_tests/ref-output/eio_hepmc3_1.ref \ unit_tests/ref-output/eio_hepmc3_2.ref \ unit_tests/ref-output/eio_hepmc3_3.ref \ unit_tests/ref-output/eio_lcio_1.ref \ unit_tests/ref-output/eio_lcio_2.ref \ unit_tests/ref-output/eio_ascii_1.ref \ unit_tests/ref-output/eio_ascii_2.ref \ unit_tests/ref-output/eio_ascii_3.ref \ unit_tests/ref-output/eio_ascii_4.ref \ unit_tests/ref-output/eio_ascii_5.ref \ unit_tests/ref-output/eio_ascii_6.ref \ unit_tests/ref-output/eio_ascii_7.ref \ unit_tests/ref-output/eio_ascii_8.ref \ unit_tests/ref-output/eio_ascii_9.ref \ unit_tests/ref-output/eio_ascii_10.ref \ unit_tests/ref-output/eio_ascii_11.ref \ unit_tests/ref-output/eio_weights_1.ref \ unit_tests/ref-output/eio_weights_2.ref \ unit_tests/ref-output/eio_weights_3.ref \ unit_tests/ref-output/eio_dump_1.ref \ unit_tests/ref-output/iterations_1.ref \ unit_tests/ref-output/iterations_2.ref \ unit_tests/ref-output/rt_data_1.ref \ unit_tests/ref-output/rt_data_2.ref \ unit_tests/ref-output/rt_data_3.ref \ unit_tests/ref-output/rt_data_4.ref \ unit_tests/ref-output/rt_data_5.ref \ unit_tests/ref-output/rt_data_6.ref \ unit_tests/ref-output/rt_data_7.ref \ unit_tests/ref-output/rt_data_8.ref \ unit_tests/ref-output/rt_data_9.ref \ unit_tests/ref-output/rt_data_10.ref \ unit_tests/ref-output/rt_data_11.ref \ unit_tests/ref-output/dispatch_1.ref \ unit_tests/ref-output/dispatch_2.ref \ unit_tests/ref-output/dispatch_7.ref \ unit_tests/ref-output/dispatch_8.ref \ unit_tests/ref-output/dispatch_10.ref \ unit_tests/ref-output/dispatch_11.ref \ unit_tests/ref-output/dispatch_rng_1.ref \ unit_tests/ref-output/dispatch_phs_1.ref \ unit_tests/ref-output/dispatch_phs_2.ref \ unit_tests/ref-output/dispatch_mci_1.ref \ unit_tests/ref-output/dispatch_transforms_1.ref \ unit_tests/ref-output/dispatch_transforms_2.ref \ unit_tests/ref-output/process_configurations_1.ref \ unit_tests/ref-output/process_configurations_2.ref \ unit_tests/ref-output/event_streams_1.ref \ unit_tests/ref-output/event_streams_2.ref \ unit_tests/ref-output/event_streams_3.ref \ unit_tests/ref-output/event_streams_4.ref \ unit_tests/ref-output/compilations_1.ref \ unit_tests/ref-output/compilations_2.ref \ unit_tests/ref-output/compilations_3.ref \ unit_tests/ref-output/compilations_static_1.ref \ unit_tests/ref-output/compilations_static_2.ref \ unit_tests/ref-output/integrations_1.ref \ unit_tests/ref-output/integrations_2.ref \ unit_tests/ref-output/integrations_3.ref \ unit_tests/ref-output/integrations_4.ref \ unit_tests/ref-output/integrations_5.ref \ unit_tests/ref-output/integrations_6.ref \ unit_tests/ref-output/integrations_7.ref \ unit_tests/ref-output/integrations_8.ref \ unit_tests/ref-output/integrations_9.ref \ unit_tests/ref-output/integrations_history_1.ref \ unit_tests/ref-output/restricted_subprocesses_1.ref \ unit_tests/ref-output/restricted_subprocesses_2.ref \ unit_tests/ref-output/restricted_subprocesses_3.ref \ unit_tests/ref-output/restricted_subprocesses_4.ref \ unit_tests/ref-output/restricted_subprocesses_5.ref \ unit_tests/ref-output/restricted_subprocesses_6.ref \ unit_tests/ref-output/simulations_1.ref \ unit_tests/ref-output/simulations_2.ref \ unit_tests/ref-output/simulations_3.ref \ unit_tests/ref-output/simulations_4.ref \ unit_tests/ref-output/simulations_5.ref \ unit_tests/ref-output/simulations_6.ref \ unit_tests/ref-output/simulations_7.ref \ unit_tests/ref-output/simulations_8.ref \ unit_tests/ref-output/simulations_9.ref \ unit_tests/ref-output/simulations_10.ref \ unit_tests/ref-output/simulations_11.ref \ unit_tests/ref-output/simulations_12.ref \ unit_tests/ref-output/simulations_13.ref \ unit_tests/ref-output/simulations_14.ref \ unit_tests/ref-output/simulations_15.ref \ unit_tests/ref-output/commands_1.ref \ unit_tests/ref-output/commands_2.ref \ unit_tests/ref-output/commands_3.ref \ unit_tests/ref-output/commands_4.ref \ unit_tests/ref-output/commands_5.ref \ unit_tests/ref-output/commands_6.ref \ unit_tests/ref-output/commands_7.ref \ unit_tests/ref-output/commands_8.ref \ unit_tests/ref-output/commands_9.ref \ unit_tests/ref-output/commands_10.ref \ unit_tests/ref-output/commands_11.ref \ unit_tests/ref-output/commands_12.ref \ unit_tests/ref-output/commands_13.ref \ unit_tests/ref-output/commands_14.ref \ unit_tests/ref-output/commands_15.ref \ unit_tests/ref-output/commands_16.ref \ unit_tests/ref-output/commands_17.ref \ unit_tests/ref-output/commands_18.ref \ unit_tests/ref-output/commands_19.ref \ unit_tests/ref-output/commands_20.ref \ unit_tests/ref-output/commands_21.ref \ unit_tests/ref-output/commands_22.ref \ unit_tests/ref-output/commands_23.ref \ unit_tests/ref-output/commands_24.ref \ unit_tests/ref-output/commands_25.ref \ unit_tests/ref-output/commands_26.ref \ unit_tests/ref-output/commands_27.ref \ unit_tests/ref-output/commands_28.ref \ unit_tests/ref-output/commands_29.ref \ unit_tests/ref-output/commands_30.ref \ unit_tests/ref-output/commands_31.ref \ unit_tests/ref-output/commands_32.ref \ unit_tests/ref-output/commands_33.ref \ unit_tests/ref-output/commands_34.ref \ unit_tests/ref-output/jets_1.ref \ unit_tests/ref-output/hepmc2_interface_1.ref \ unit_tests/ref-output/hepmc3_interface_1.ref \ unit_tests/ref-output/lcio_interface_1.ref \ unit_tests/ref-output/ttv_formfactors_1.ref \ unit_tests/ref-output/ttv_formfactors_2.ref \ unit_tests/ref-output/blha_1.ref \ unit_tests/ref-output/blha_2.ref \ unit_tests/ref-output/blha_3.ref \ unit_tests/ref-output/whizard_lha_1.ref \ functional_tests/ref-output/pack_1.ref \ functional_tests/ref-output/structure_1.ref \ functional_tests/ref-output/structure_2.ref \ functional_tests/ref-output/structure_3.ref \ functional_tests/ref-output/structure_4.ref \ functional_tests/ref-output/structure_5.ref \ functional_tests/ref-output/structure_6.ref \ functional_tests/ref-output/structure_7.ref \ functional_tests/ref-output/structure_8.ref \ functional_tests/ref-output/vars.ref \ functional_tests/ref-output/extpar.ref \ functional_tests/ref-output/testproc_1.ref \ functional_tests/ref-output/testproc_2.ref \ functional_tests/ref-output/testproc_3.ref \ functional_tests/ref-output/testproc_4.ref \ functional_tests/ref-output/testproc_5.ref \ functional_tests/ref-output/testproc_6.ref \ functional_tests/ref-output/testproc_7.ref \ functional_tests/ref-output/testproc_8.ref \ functional_tests/ref-output/testproc_9.ref \ functional_tests/ref-output/testproc_10.ref \ functional_tests/ref-output/testproc_11.ref \ functional_tests/ref-output/testproc_12.ref \ functional_tests/ref-output/template_me_1.ref \ functional_tests/ref-output/template_me_2.ref \ functional_tests/ref-output/susyhit.ref \ functional_tests/ref-output/restrictions.ref \ functional_tests/ref-output/process_log.ref \ functional_tests/ref-output/static_1.ref \ functional_tests/ref-output/static_2.ref \ functional_tests/ref-output/libraries_1.ref \ functional_tests/ref-output/libraries_2.ref \ functional_tests/ref-output/libraries_4.ref \ functional_tests/ref-output/job_id_1.ref \ functional_tests/ref-output/job_id_2.ref \ functional_tests/ref-output/job_id_3.ref \ functional_tests/ref-output/job_id_4.ref \ functional_tests/ref-output/rebuild_2.ref \ functional_tests/ref-output/rebuild_3.ref \ functional_tests/ref-output/rebuild_4.ref \ functional_tests/ref-output/fatal.ref \ functional_tests/ref-output/cmdline_1.ref \ functional_tests/ref-output/model_change_1.ref \ functional_tests/ref-output/model_change_2.ref \ functional_tests/ref-output/model_change_3.ref \ functional_tests/ref-output/model_scheme_1.ref \ functional_tests/ref-output/model_test.ref \ functional_tests/ref-output/cuts.ref \ functional_tests/ref-output/user_prc_threshold_1.ref \ functional_tests/ref-output/user_prc_threshold_2.ref \ functional_tests/ref-output/qedtest_1.ref \ functional_tests/ref-output/qedtest_2.ref \ functional_tests/ref-output/qedtest_5.ref \ functional_tests/ref-output/qedtest_6.ref \ functional_tests/ref-output/qedtest_7.ref \ functional_tests/ref-output/qedtest_8.ref \ functional_tests/ref-output/qedtest_9.ref \ functional_tests/ref-output/qedtest_10.ref \ functional_tests/ref-output/qcdtest_4.ref \ functional_tests/ref-output/qcdtest_5.ref \ functional_tests/ref-output/qcdtest_6.ref \ functional_tests/ref-output/rambo_vamp_1.ref \ functional_tests/ref-output/rambo_vamp_2.ref \ functional_tests/ref-output/beam_setup_1.ref \ functional_tests/ref-output/beam_setup_2.ref \ functional_tests/ref-output/beam_setup_3.ref \ functional_tests/ref-output/beam_setup_4.ref \ functional_tests/ref-output/observables_1.ref \ functional_tests/ref-output/event_weights_1.ref \ functional_tests/ref-output/event_weights_2.ref \ functional_tests/ref-output/event_eff_1.ref \ functional_tests/ref-output/event_eff_2.ref \ functional_tests/ref-output/event_dump_1.ref \ functional_tests/ref-output/event_dump_2.ref \ functional_tests/ref-output/event_failed_1.ref \ functional_tests/ref-output/reweight_1.ref \ functional_tests/ref-output/reweight_2.ref \ functional_tests/ref-output/reweight_3.ref \ functional_tests/ref-output/reweight_4.ref \ functional_tests/ref-output/reweight_5.ref \ functional_tests/ref-output/reweight_6.ref \ functional_tests/ref-output/reweight_7.ref \ functional_tests/ref-output/reweight_8.ref \ functional_tests/ref-output/reweight_9.ref \ functional_tests/ref-output/reweight_10.ref \ functional_tests/ref-output/analyze_1.ref \ functional_tests/ref-output/analyze_2.ref \ functional_tests/ref-output/analyze_3.ref \ functional_tests/ref-output/analyze_4.ref \ functional_tests/ref-output/analyze_5.ref \ functional_tests/ref-output/analyze_6.ref \ functional_tests/ref-output/bjet_cluster.ref \ functional_tests/ref-output/colors.ref \ functional_tests/ref-output/colors_hgg.ref \ functional_tests/ref-output/alphas.ref \ functional_tests/ref-output/jets_xsec.ref \ functional_tests/ref-output/shower_err_1.ref \ functional_tests/ref-output/parton_shower_1.ref \ functional_tests/ref-output/pythia6_1.ref \ functional_tests/ref-output/pythia6_2.ref \ functional_tests/ref-output/hadronize_1.ref \ functional_tests/ref-output/mlm_matching_fsr.ref \ functional_tests/ref-output/mlm_pythia6_isr.ref \ functional_tests/ref-output/hepmc_1.ref \ functional_tests/ref-output/hepmc_2.ref \ functional_tests/ref-output/hepmc_3.ref \ functional_tests/ref-output/hepmc_4.ref \ functional_tests/ref-output/hepmc_5.ref \ functional_tests/ref-output/hepmc_6.ref \ functional_tests/ref-output/hepmc_7.ref \ functional_tests/ref-output/hepmc_9.ref \ functional_tests/ref-output/hepmc_10.ref \ functional_tests/ref-output/lhef_1.ref \ functional_tests/ref-output/lhef_2.ref \ functional_tests/ref-output/lhef_3.ref \ functional_tests/ref-output/lhef_4.ref \ functional_tests/ref-output/lhef_5.ref \ functional_tests/ref-output/lhef_6.ref \ functional_tests/ref-output/lhef_9.ref \ functional_tests/ref-output/lhef_10.ref \ functional_tests/ref-output/lhef_11.ref \ functional_tests/ref-output/select_1.ref \ functional_tests/ref-output/select_2.ref \ functional_tests/ref-output/stdhep_1.ref \ functional_tests/ref-output/stdhep_2.ref \ functional_tests/ref-output/stdhep_3.ref \ functional_tests/ref-output/stdhep_4.ref \ functional_tests/ref-output/stdhep_5.ref \ functional_tests/ref-output/stdhep_6.ref \ functional_tests/ref-output/lcio_1.ref \ functional_tests/ref-output/lcio_3.ref \ functional_tests/ref-output/lcio_4.ref \ functional_tests/ref-output/lcio_5.ref \ functional_tests/ref-output/lcio_6.ref \ functional_tests/ref-output/lcio_8.ref \ functional_tests/ref-output/lcio_9.ref \ functional_tests/ref-output/lcio_10.ref \ functional_tests/ref-output/lcio_11.ref \ functional_tests/ref-output/fatal_beam_decay.ref \ functional_tests/ref-output/smtest_1.ref \ functional_tests/ref-output/smtest_3.ref \ functional_tests/ref-output/smtest_4.ref \ functional_tests/ref-output/smtest_5.ref \ functional_tests/ref-output/smtest_6.ref \ functional_tests/ref-output/smtest_7.ref \ functional_tests/ref-output/smtest_9.ref \ functional_tests/ref-output/smtest_10.ref \ functional_tests/ref-output/smtest_11.ref \ functional_tests/ref-output/smtest_12.ref \ functional_tests/ref-output/smtest_13.ref \ functional_tests/ref-output/smtest_14.ref \ functional_tests/ref-output/smtest_15.ref \ functional_tests/ref-output/smtest_16.ref \ functional_tests/ref-output/photon_isolation_1.ref \ functional_tests/ref-output/photon_isolation_2.ref \ functional_tests/ref-output/sm_cms_1.ref \ functional_tests/ref-output/resonances_5.ref \ functional_tests/ref-output/resonances_6.ref \ functional_tests/ref-output/resonances_7.ref \ functional_tests/ref-output/resonances_8.ref \ functional_tests/ref-output/resonances_9.ref \ functional_tests/ref-output/resonances_12.ref \ functional_tests/ref-output/ufo_1.ref \ functional_tests/ref-output/ufo_2.ref \ functional_tests/ref-output/ufo_3.ref \ functional_tests/ref-output/ufo_4.ref \ functional_tests/ref-output/ufo_5.ref \ functional_tests/ref-output/nlo_1.ref \ functional_tests/ref-output/nlo_2.ref \ functional_tests/ref-output/nlo_6.ref \ functional_tests/ref-output/real_partition_1.ref \ functional_tests/ref-output/fks_res_2.ref \ functional_tests/ref-output/openloops_1.ref \ functional_tests/ref-output/openloops_2.ref \ functional_tests/ref-output/openloops_4.ref \ functional_tests/ref-output/openloops_5.ref \ functional_tests/ref-output/openloops_6.ref \ functional_tests/ref-output/openloops_7.ref \ functional_tests/ref-output/openloops_8.ref \ functional_tests/ref-output/openloops_9.ref \ functional_tests/ref-output/openloops_10.ref \ functional_tests/ref-output/openloops_11.ref \ functional_tests/ref-output/openloops_12.ref \ functional_tests/ref-output/openloops_13.ref \ functional_tests/ref-output/recola_1.ref \ functional_tests/ref-output/recola_2.ref \ functional_tests/ref-output/recola_3.ref \ functional_tests/ref-output/recola_4.ref \ functional_tests/ref-output/recola_5.ref \ functional_tests/ref-output/recola_6.ref \ functional_tests/ref-output/recola_7.ref \ functional_tests/ref-output/recola_8.ref \ functional_tests/ref-output/recola_9.ref \ functional_tests/ref-output/nlo_decay_1.ref \ functional_tests/ref-output/mssmtest_1.ref \ functional_tests/ref-output/mssmtest_2.ref \ functional_tests/ref-output/mssmtest_3.ref \ functional_tests/ref-output/spincor_1.ref \ functional_tests/ref-output/show_1.ref \ functional_tests/ref-output/show_2.ref \ functional_tests/ref-output/show_3.ref \ functional_tests/ref-output/show_4.ref \ functional_tests/ref-output/show_5.ref \ functional_tests/ref-output/method_ovm_1.ref \ functional_tests/ref-output/multi_comp_4.ref \ functional_tests/ref-output/flvsum_1.ref \ functional_tests/ref-output/br_redef_1.ref \ functional_tests/ref-output/decay_err_1.ref \ functional_tests/ref-output/decay_err_2.ref \ functional_tests/ref-output/decay_err_3.ref \ functional_tests/ref-output/polarized_1.ref \ functional_tests/ref-output/circe1_1.ref \ functional_tests/ref-output/circe1_2.ref \ functional_tests/ref-output/circe1_3.ref \ functional_tests/ref-output/circe1_6.ref \ functional_tests/ref-output/circe1_10.ref \ functional_tests/ref-output/circe1_errors_1.ref \ functional_tests/ref-output/circe2_1.ref \ functional_tests/ref-output/circe2_2.ref \ functional_tests/ref-output/circe2_3.ref \ functional_tests/ref-output/isr_1.ref \ functional_tests/ref-output/epa_1.ref \ functional_tests/ref-output/epa_2.ref \ functional_tests/ref-output/epa_3.ref \ functional_tests/ref-output/epa_4.ref \ functional_tests/ref-output/isr_epa_1.ref \ functional_tests/ref-output/ep_3.ref \ functional_tests/ref-output/ewa_4.ref \ functional_tests/ref-output/gaussian_1.ref \ functional_tests/ref-output/gaussian_2.ref \ functional_tests/ref-output/beam_events_1.ref \ functional_tests/ref-output/beam_events_4.ref \ functional_tests/ref-output/energy_scan_1.ref \ functional_tests/ref-output/cascades2_phs_1.ref \ functional_tests/ref-output/cascades2_phs_2.ref \ functional_tests/ref-output/vamp2_1.ref \ functional_tests/ref-output/vamp2_2.ref \ ext_tests_nlo/ref-output/nlo_ee4j.ref \ ext_tests_nlo/ref-output/nlo_ee4t.ref \ ext_tests_nlo/ref-output/nlo_ee5j.ref \ ext_tests_nlo/ref-output/nlo_eejj.ref \ ext_tests_nlo/ref-output/nlo_eejjj.ref \ ext_tests_nlo/ref-output/nlo_eett.ref \ ext_tests_nlo/ref-output/nlo_eetth.ref \ ext_tests_nlo/ref-output/nlo_eetthh.ref \ ext_tests_nlo/ref-output/nlo_eetthj.ref \ ext_tests_nlo/ref-output/nlo_eetthz.ref \ ext_tests_nlo/ref-output/nlo_eettwjj.ref \ ext_tests_nlo/ref-output/nlo_eettww.ref \ ext_tests_nlo/ref-output/nlo_eettz.ref \ ext_tests_nlo/ref-output/nlo_eettzj.ref \ ext_tests_nlo/ref-output/nlo_eettzjj.ref \ ext_tests_nlo/ref-output/nlo_eettzz.ref \ ext_tests_nlo/ref-output/nlo_pptttt.ref \ ext_tests_nlo/ref-output/nlo_ppz.ref \ ext_tests_nlo/ref-output/nlo_ppw.ref \ ext_tests_nlo/ref-output/nlo_ppzw.ref \ ext_tests_nlo/ref-output/nlo_ppzz.ref # Reference files that depend on the numerical precision REF_OUTPUT_FILES_DOUBLE = \ functional_tests/ref-output-double/qedtest_3.ref \ functional_tests/ref-output-double/qedtest_4.ref \ functional_tests/ref-output-double/qcdtest_1.ref \ functional_tests/ref-output-double/qcdtest_2.ref \ functional_tests/ref-output-double/qcdtest_3.ref \ functional_tests/ref-output-double/smtest_2.ref \ functional_tests/ref-output-double/smtest_8.ref \ functional_tests/ref-output-double/observables_2.ref \ functional_tests/ref-output-double/colors_2.ref \ functional_tests/ref-output-double/resonances_1.ref \ functional_tests/ref-output-double/resonances_2.ref \ functional_tests/ref-output-double/resonances_3.ref \ functional_tests/ref-output-double/resonances_4.ref \ functional_tests/ref-output-double/resonances_10.ref \ functional_tests/ref-output-double/resonances_11.ref \ functional_tests/ref-output-double/resonances_13.ref \ functional_tests/ref-output-double/beam_setup_5.ref \ functional_tests/ref-output-double/nlo_3.ref \ functional_tests/ref-output-double/nlo_4.ref \ functional_tests/ref-output-double/nlo_5.ref \ functional_tests/ref-output-double/fks_res_1.ref \ functional_tests/ref-output-double/fks_res_3.ref \ functional_tests/ref-output-double/openloops_3.ref \ functional_tests/ref-output-double/powheg_1.ref \ functional_tests/ref-output-double/defaultcuts.ref \ functional_tests/ref-output-double/parton_shower_2.ref \ functional_tests/ref-output-double/helicity.ref \ functional_tests/ref-output-double/lhef_7.ref \ functional_tests/ref-output-double/hepmc_8.ref \ functional_tests/ref-output-double/lcio_2.ref \ functional_tests/ref-output-double/lcio_7.ref \ functional_tests/ref-output-double/multi_comp_1.ref \ functional_tests/ref-output-double/multi_comp_2.ref \ functional_tests/ref-output-double/multi_comp_3.ref \ functional_tests/ref-output-double/pdf_builtin.ref \ functional_tests/ref-output-double/lhapdf5.ref \ functional_tests/ref-output-double/lhapdf6.ref \ functional_tests/ref-output-double/ep_1.ref \ functional_tests/ref-output-double/ep_2.ref \ functional_tests/ref-output-double/circe1_4.ref \ functional_tests/ref-output-double/circe1_5.ref \ functional_tests/ref-output-double/circe1_7.ref \ functional_tests/ref-output-double/circe1_8.ref \ functional_tests/ref-output-double/circe1_9.ref \ functional_tests/ref-output-double/circe1_photons_1.ref \ functional_tests/ref-output-double/circe1_photons_2.ref \ functional_tests/ref-output-double/circe1_photons_3.ref \ functional_tests/ref-output-double/circe1_photons_4.ref \ functional_tests/ref-output-double/circe1_photons_5.ref \ functional_tests/ref-output-double/isr_2.ref \ functional_tests/ref-output-double/isr_3.ref \ functional_tests/ref-output-double/isr_4.ref \ functional_tests/ref-output-double/isr_5.ref \ functional_tests/ref-output-double/isr_6.ref \ functional_tests/ref-output-double/pythia6_3.ref \ functional_tests/ref-output-double/pythia6_4.ref \ functional_tests/ref-output-double/tauola_1.ref \ functional_tests/ref-output-double/tauola_2.ref \ + functional_tests/ref-output-double/tauola_3.ref \ functional_tests/ref-output-double/mlm_matching_isr.ref \ functional_tests/ref-output-double/ewa_1.ref \ functional_tests/ref-output-double/ewa_2.ref \ functional_tests/ref-output-double/ewa_3.ref \ functional_tests/ref-output-double/ilc.ref \ functional_tests/ref-output-double/beam_events_2.ref \ functional_tests/ref-output-double/beam_events_3.ref REF_OUTPUT_FILES_PREC = \ functional_tests/ref-output-prec/qedtest_3.ref \ functional_tests/ref-output-prec/qedtest_4.ref \ functional_tests/ref-output-prec/qcdtest_1.ref \ functional_tests/ref-output-prec/qcdtest_2.ref \ functional_tests/ref-output-prec/qcdtest_3.ref \ functional_tests/ref-output-prec/smtest_2.ref \ functional_tests/ref-output-prec/smtest_8.ref \ functional_tests/ref-output-prec/colors_2.ref \ functional_tests/ref-output-prec/beam_setup_5.ref \ functional_tests/ref-output-prec/nlo_3.ref \ functional_tests/ref-output-prec/nlo_4.ref \ functional_tests/ref-output-prec/fks_res_1.ref \ functional_tests/ref-output-prec/fks_res_3.ref \ functional_tests/ref-output-prec/openloops_3.ref \ functional_tests/ref-output-prec/defaultcuts.ref \ functional_tests/ref-output-prec/parton_shower_2.ref \ functional_tests/ref-output-prec/helicity.ref \ functional_tests/ref-output-prec/lhef_7.ref \ functional_tests/ref-output-prec/multi_comp_1.ref \ functional_tests/ref-output-prec/multi_comp_2.ref \ functional_tests/ref-output-prec/multi_comp_3.ref \ functional_tests/ref-output-prec/pdf_builtin.ref \ functional_tests/ref-output-prec/lhapdf5.ref \ functional_tests/ref-output-prec/lhapdf6.ref \ functional_tests/ref-output-prec/ep_1.ref \ functional_tests/ref-output-prec/ep_2.ref \ functional_tests/ref-output-prec/ilc.ref \ functional_tests/ref-output-prec/circe1_9.ref \ functional_tests/ref-output-prec/circe1_photons_1.ref \ functional_tests/ref-output-prec/circe1_photons_2.ref \ functional_tests/ref-output-prec/circe1_photons_3.ref \ functional_tests/ref-output-prec/circe1_photons_4.ref \ functional_tests/ref-output-prec/circe1_photons_5.ref \ functional_tests/ref-output-prec/ewa_1.ref REF_OUTPUT_FILES_EXT = \ functional_tests/ref-output-ext/observables_2.ref \ functional_tests/ref-output-ext/resonances_1.ref \ functional_tests/ref-output-ext/resonances_2.ref \ functional_tests/ref-output-ext/resonances_3.ref \ functional_tests/ref-output-ext/resonances_4.ref \ functional_tests/ref-output-ext/resonances_10.ref \ functional_tests/ref-output-ext/resonances_11.ref \ functional_tests/ref-output-ext/resonances_13.ref \ functional_tests/ref-output-ext/circe1_4.ref \ functional_tests/ref-output-ext/circe1_5.ref \ functional_tests/ref-output-ext/circe1_7.ref \ functional_tests/ref-output-ext/circe1_8.ref \ functional_tests/ref-output-ext/isr_2.ref \ functional_tests/ref-output-ext/isr_3.ref \ functional_tests/ref-output-ext/isr_4.ref \ functional_tests/ref-output-ext/isr_5.ref \ functional_tests/ref-output-ext/isr_6.ref \ functional_tests/ref-output-ext/nlo_5.ref \ functional_tests/ref-output-ext/powheg_1.ref \ functional_tests/ref-output-ext/pythia6_3.ref \ functional_tests/ref-output-ext/pythia6_4.ref \ functional_tests/ref-output-ext/tauola_1.ref \ functional_tests/ref-output-ext/tauola_2.ref \ + functional_tests/ref-output-ext/tauola_3.ref \ functional_tests/ref-output-ext/ewa_2.ref \ functional_tests/ref-output-ext/ewa_3.ref \ functional_tests/ref-output-ext/beam_events_2.ref \ functional_tests/ref-output-ext/beam_events_3.ref \ functional_tests/ref-output-ext/mlm_matching_isr.ref \ functional_tests/ref-output-ext/hepmc_8.ref \ functional_tests/ref-output-ext/lcio_2.ref \ functional_tests/ref-output-ext/lcio_7.ref REF_OUTPUT_FILES_QUAD = \ functional_tests/ref-output-quad/observables_2.ref \ functional_tests/ref-output-quad/resonances_1.ref \ functional_tests/ref-output-quad/resonances_2.ref \ functional_tests/ref-output-quad/resonances_3.ref \ functional_tests/ref-output-quad/resonances_4.ref \ functional_tests/ref-output-quad/resonances_10.ref \ functional_tests/ref-output-quad/resonances_11.ref \ functional_tests/ref-output-quad/resonances_13.ref \ functional_tests/ref-output-quad/circe1_4.ref \ functional_tests/ref-output-quad/circe1_5.ref \ functional_tests/ref-output-quad/circe1_7.ref \ functional_tests/ref-output-quad/circe1_8.ref \ functional_tests/ref-output-quad/isr_2.ref \ functional_tests/ref-output-quad/isr_3.ref \ functional_tests/ref-output-quad/isr_4.ref \ functional_tests/ref-output-quad/isr_5.ref \ functional_tests/ref-output-quad/isr_6.ref \ functional_tests/ref-output-quad/nlo_5.ref \ functional_tests/ref-output-quad/powheg_1.ref \ functional_tests/ref-output-quad/pythia6_3.ref \ functional_tests/ref-output-quad/pythia6_4.ref \ functional_tests/ref-output-quad/tauola_1.ref \ functional_tests/ref-output-quad/tauola_2.ref \ + functional_tests/ref-output-quad/tauola_3.ref \ functional_tests/ref-output-quad/ewa_2.ref \ functional_tests/ref-output-quad/ewa_3.ref \ functional_tests/ref-output-quad/beam_events_2.ref \ functional_tests/ref-output-quad/beam_events_3.ref \ functional_tests/ref-output-quad/mlm_matching_isr.ref \ functional_tests/ref-output-quad/hepmc_8.ref \ functional_tests/ref-output-quad/lcio_2.ref \ functional_tests/ref-output-quad/lcio_7.ref TESTSUITES_M4 = \ $(MISC_TESTS_M4) \ $(EXT_MSSM_M4) \ $(EXT_NMSSM_M4) TESTSUITES_SIN = \ $(MISC_TESTS_SIN) \ $(EXT_ILC_SIN) \ $(EXT_MSSM_SIN) \ $(EXT_NMSSM_SIN) \ $(EXT_SHOWER_SIN) \ $(EXT_NLO_SIN) \ $(EXT_NLO_ADD_SIN) MISC_TESTS_M4 = MISC_TESTS_SIN = \ functional_tests/empty.sin \ functional_tests/fatal.sin \ functional_tests/cmdline_1_a.sin \ functional_tests/cmdline_1_b.sin \ functional_tests/cmdline_1.sin \ functional_tests/pack_1.sin \ functional_tests/defaultcuts.sin \ functional_tests/cuts.sin \ functional_tests/model_change_1.sin \ functional_tests/model_change_2.sin \ functional_tests/model_change_3.sin \ functional_tests/model_scheme_1.sin \ functional_tests/model_test.sin \ functional_tests/structure_1.sin \ functional_tests/structure_2.sin \ functional_tests/structure_3.sin \ functional_tests/structure_4.sin \ functional_tests/structure_5.sin \ functional_tests/structure_6.sin \ functional_tests/structure_7.sin \ functional_tests/structure_8.sin \ functional_tests/vars.sin \ functional_tests/extpar.sin \ functional_tests/testproc_1.sin \ functional_tests/testproc_2.sin \ functional_tests/testproc_3.sin \ functional_tests/testproc_4.sin \ functional_tests/testproc_5.sin \ functional_tests/testproc_6.sin \ functional_tests/testproc_7.sin \ functional_tests/testproc_8.sin \ functional_tests/testproc_9.sin \ functional_tests/testproc_10.sin \ functional_tests/testproc_11.sin \ functional_tests/testproc_12.sin \ functional_tests/template_me_1.sin \ functional_tests/template_me_2.sin \ functional_tests/libraries_1.sin \ functional_tests/libraries_2.sin \ functional_tests/libraries_3.sin \ functional_tests/libraries_4.sin \ functional_tests/job_id_1.sin \ functional_tests/job_id_2.sin \ functional_tests/job_id_3.sin \ functional_tests/job_id_4.sin \ functional_tests/rebuild_1.sin \ functional_tests/rebuild_2.sin \ functional_tests/rebuild_3.sin \ functional_tests/rebuild_4.sin \ functional_tests/rebuild_5.sin \ functional_tests/qedtest_1.sin \ functional_tests/qedtest_2.sin \ functional_tests/qedtest_3.sin \ functional_tests/qedtest_4.sin \ functional_tests/qedtest_5.sin \ functional_tests/qedtest_6.sin \ functional_tests/qedtest_7.sin \ functional_tests/qedtest_8.sin \ functional_tests/qedtest_9.sin \ functional_tests/qedtest_10.sin \ functional_tests/rambo_vamp_1.sin \ functional_tests/rambo_vamp_2.sin \ functional_tests/beam_setup_1.sin \ functional_tests/beam_setup_2.sin \ functional_tests/beam_setup_3.sin \ functional_tests/beam_setup_4.sin \ functional_tests/beam_setup_5.sin \ functional_tests/qcdtest_1.sin \ functional_tests/qcdtest_2.sin \ functional_tests/qcdtest_3.sin \ functional_tests/qcdtest_4.sin \ functional_tests/qcdtest_5.sin \ functional_tests/qcdtest_6.sin \ functional_tests/observables_1.sin \ functional_tests/observables_2.sin \ functional_tests/event_weights_1.sin \ functional_tests/event_weights_2.sin \ functional_tests/event_eff_1.sin \ functional_tests/event_eff_2.sin \ functional_tests/event_dump_1.sin \ functional_tests/event_dump_2.sin \ functional_tests/event_failed_1.sin \ functional_tests/reweight_1.sin \ functional_tests/reweight_2.sin \ functional_tests/reweight_3.sin \ functional_tests/reweight_4.sin \ functional_tests/reweight_5.sin \ functional_tests/reweight_6.sin \ functional_tests/reweight_7.sin \ functional_tests/reweight_8.sin \ functional_tests/reweight_9.sin \ functional_tests/reweight_10.sin \ functional_tests/analyze_1.sin \ functional_tests/analyze_2.sin \ functional_tests/analyze_3.sin \ functional_tests/analyze_4.sin \ functional_tests/analyze_5.sin \ functional_tests/analyze_6.sin \ functional_tests/bjet_cluster.sin \ functional_tests/colors.sin \ functional_tests/colors_2.sin \ functional_tests/colors_hgg.sin \ functional_tests/alphas.sin \ functional_tests/jets_xsec.sin \ functional_tests/lhef_1.sin \ functional_tests/lhef_2.sin \ functional_tests/lhef_3.sin \ functional_tests/lhef_4.sin \ functional_tests/lhef_5.sin \ functional_tests/lhef_6.sin \ functional_tests/lhef_7.sin \ functional_tests/lhef_8.sin \ functional_tests/lhef_9.sin \ functional_tests/lhef_10.sin \ functional_tests/lhef_11.sin \ functional_tests/select_1.sin \ functional_tests/select_2.sin \ functional_tests/shower_err_1.sin \ functional_tests/parton_shower_1.sin \ functional_tests/parton_shower_2.sin \ functional_tests/pythia6_1.sin \ functional_tests/pythia6_2.sin \ functional_tests/pythia6_3.sin \ functional_tests/pythia6_4.sin \ functional_tests/pythia8_1.sin \ functional_tests/pythia8_2.sin \ functional_tests/hadronize_1.sin \ functional_tests/tauola_1.sin \ functional_tests/tauola_2.sin \ + functional_tests/tauola_3.sin \ functional_tests/mlm_matching_fsr.sin \ functional_tests/mlm_matching_isr.sin \ functional_tests/mlm_pythia6_isr.sin \ functional_tests/hepmc_1.sin \ functional_tests/hepmc_2.sin \ functional_tests/hepmc_3.sin \ functional_tests/hepmc_4.sin \ functional_tests/hepmc_5.sin \ functional_tests/hepmc_6.sin \ functional_tests/hepmc_7.sin \ functional_tests/hepmc_8.sin \ functional_tests/hepmc_9.sin \ functional_tests/hepmc_10.sin \ functional_tests/stdhep_1.sin \ functional_tests/stdhep_2.sin \ functional_tests/stdhep_3.sin \ functional_tests/stdhep_4.sin \ functional_tests/stdhep_5.sin \ functional_tests/stdhep_6.sin \ functional_tests/lcio_1.sin \ functional_tests/lcio_2.sin \ functional_tests/lcio_3.sin \ functional_tests/lcio_4.sin \ functional_tests/lcio_5.sin \ functional_tests/lcio_6.sin \ functional_tests/lcio_7.sin \ functional_tests/lcio_8.sin \ functional_tests/lcio_9.sin \ functional_tests/lcio_10.sin \ functional_tests/lcio_11.sin \ functional_tests/fatal_beam_decay.sin \ functional_tests/smtest_1.sin \ functional_tests/smtest_2.sin \ functional_tests/smtest_3.sin \ functional_tests/smtest_4.sin \ functional_tests/smtest_5.sin \ functional_tests/smtest_6.sin \ functional_tests/smtest_7.sin \ functional_tests/smtest_8.sin \ functional_tests/smtest_9.sin \ functional_tests/smtest_10.sin \ functional_tests/smtest_11.sin \ functional_tests/smtest_12.sin \ functional_tests/smtest_13.sin \ functional_tests/smtest_14.sin \ functional_tests/smtest_15.sin \ functional_tests/smtest_16.sin \ functional_tests/photon_isolation_1.sin \ functional_tests/photon_isolation_2.sin \ functional_tests/resonances_1.sin \ functional_tests/resonances_2.sin \ functional_tests/resonances_3.sin \ functional_tests/resonances_4.sin \ functional_tests/resonances_5.sin \ functional_tests/resonances_6.sin \ functional_tests/resonances_7.sin \ functional_tests/resonances_8.sin \ functional_tests/resonances_9.sin \ functional_tests/resonances_10.sin \ functional_tests/resonances_11.sin \ functional_tests/resonances_12.sin \ functional_tests/resonances_13.sin \ functional_tests/sm_cms_1.sin \ functional_tests/ufo_1.sin \ functional_tests/ufo_2.sin \ functional_tests/ufo_3.sin \ functional_tests/ufo_4.sin \ functional_tests/ufo_5.sin \ functional_tests/nlo_1.sin \ functional_tests/nlo_2.sin \ functional_tests/nlo_3.sin \ functional_tests/nlo_4.sin \ functional_tests/nlo_5.sin \ functional_tests/nlo_6.sin \ functional_tests/nlo_decay_1.sin \ functional_tests/real_partition_1.sin \ functional_tests/fks_res_1.sin \ functional_tests/fks_res_2.sin \ functional_tests/fks_res_3.sin \ functional_tests/openloops_1.sin \ functional_tests/openloops_2.sin \ functional_tests/openloops_3.sin \ functional_tests/openloops_4.sin \ functional_tests/openloops_5.sin \ functional_tests/openloops_6.sin \ functional_tests/openloops_7.sin \ functional_tests/openloops_8.sin \ functional_tests/openloops_9.sin \ functional_tests/openloops_10.sin \ functional_tests/openloops_11.sin \ functional_tests/openloops_12.sin \ functional_tests/openloops_13.sin \ functional_tests/recola_1.sin \ functional_tests/recola_2.sin \ functional_tests/recola_3.sin \ functional_tests/recola_4.sin \ functional_tests/recola_5.sin \ functional_tests/recola_6.sin \ functional_tests/recola_7.sin \ functional_tests/recola_8.sin \ functional_tests/recola_9.sin \ functional_tests/powheg_1.sin \ functional_tests/mssmtest_1.sin \ functional_tests/mssmtest_2.sin \ functional_tests/mssmtest_3.sin \ functional_tests/spincor_1.sin \ functional_tests/show_1.sin \ functional_tests/show_2.sin \ functional_tests/show_3.sin \ functional_tests/show_4.sin \ functional_tests/show_5.sin \ functional_tests/method_ovm_1.sin \ functional_tests/multi_comp_1.sin \ functional_tests/multi_comp_2.sin \ functional_tests/multi_comp_3.sin \ functional_tests/multi_comp_4.sin \ functional_tests/flvsum_1.sin \ functional_tests/br_redef_1.sin \ functional_tests/decay_err_1.sin \ functional_tests/decay_err_2.sin \ functional_tests/decay_err_3.sin \ functional_tests/polarized_1.sin \ functional_tests/pdf_builtin.sin \ functional_tests/lhapdf5.sin \ functional_tests/lhapdf6.sin \ functional_tests/ep_1.sin \ functional_tests/ep_2.sin \ functional_tests/ep_3.sin \ functional_tests/circe1_1.sin \ functional_tests/circe1_2.sin \ functional_tests/circe1_3.sin \ functional_tests/circe1_4.sin \ functional_tests/circe1_5.sin \ functional_tests/circe1_6.sin \ functional_tests/circe1_7.sin \ functional_tests/circe1_8.sin \ functional_tests/circe1_9.sin \ functional_tests/circe1_10.sin \ functional_tests/circe1_photons_1.sin \ functional_tests/circe1_photons_2.sin \ functional_tests/circe1_photons_3.sin \ functional_tests/circe1_photons_4.sin \ functional_tests/circe1_photons_5.sin \ functional_tests/circe1_errors_1.sin \ functional_tests/circe2_1.sin \ functional_tests/circe2_2.sin \ functional_tests/circe2_3.sin \ functional_tests/isr_1.sin \ functional_tests/isr_2.sin \ functional_tests/isr_3.sin \ functional_tests/isr_4.sin \ functional_tests/isr_5.sin \ functional_tests/isr_6.sin \ functional_tests/epa_1.sin \ functional_tests/epa_2.sin \ functional_tests/epa_3.sin \ functional_tests/epa_4.sin \ functional_tests/isr_epa_1.sin \ functional_tests/ewa_1.sin \ functional_tests/ewa_2.sin \ functional_tests/ewa_3.sin \ functional_tests/ewa_4.sin \ functional_tests/ilc.sin \ functional_tests/gaussian_1.sin \ functional_tests/gaussian_2.sin \ functional_tests/beam_events_1.sin \ functional_tests/beam_events_2.sin \ functional_tests/beam_events_3.sin \ functional_tests/beam_events_4.sin \ functional_tests/energy_scan_1.sin \ functional_tests/susyhit.sin \ functional_tests/restrictions.sin \ functional_tests/helicity.sin \ functional_tests/process_log.sin \ functional_tests/static_1.sin \ functional_tests/static_1.exe.sin \ functional_tests/static_2.sin \ functional_tests/static_2.exe.sin \ functional_tests/user_prc_threshold_1.sin \ functional_tests/cascades2_phs_1.sin \ functional_tests/cascades2_phs_2.sin \ functional_tests/user_prc_threshold_2.sin \ functional_tests/vamp2_1.sin \ functional_tests/vamp2_2.sin EXT_MSSM_M4 = \ ext_tests_mssm/mssm_ext-ee.m4 \ ext_tests_mssm/mssm_ext-ee2.m4 \ ext_tests_mssm/mssm_ext-en.m4 \ ext_tests_mssm/mssm_ext-tn.m4 \ ext_tests_mssm/mssm_ext-uu.m4 \ ext_tests_mssm/mssm_ext-uu2.m4 \ ext_tests_mssm/mssm_ext-uuckm.m4 \ ext_tests_mssm/mssm_ext-dd.m4 \ ext_tests_mssm/mssm_ext-dd2.m4 \ ext_tests_mssm/mssm_ext-ddckm.m4 \ ext_tests_mssm/mssm_ext-bb.m4 \ ext_tests_mssm/mssm_ext-bt.m4 \ ext_tests_mssm/mssm_ext-tt.m4 \ ext_tests_mssm/mssm_ext-ug.m4 \ ext_tests_mssm/mssm_ext-dg.m4 \ ext_tests_mssm/mssm_ext-aa.m4 \ ext_tests_mssm/mssm_ext-wa.m4 \ ext_tests_mssm/mssm_ext-za.m4 \ ext_tests_mssm/mssm_ext-ww.m4 \ ext_tests_mssm/mssm_ext-wz.m4 \ ext_tests_mssm/mssm_ext-zz.m4 \ ext_tests_mssm/mssm_ext-gg.m4 \ ext_tests_mssm/mssm_ext-ga.m4 \ ext_tests_mssm/mssm_ext-gw.m4 \ ext_tests_mssm/mssm_ext-gz.m4 EXT_NMSSM_M4 = \ ext_tests_nmssm/nmssm_ext-aa.m4 \ ext_tests_nmssm/nmssm_ext-bb1.m4 \ ext_tests_nmssm/nmssm_ext-bb2.m4 \ ext_tests_nmssm/nmssm_ext-bt.m4 \ ext_tests_nmssm/nmssm_ext-dd1.m4 \ ext_tests_nmssm/nmssm_ext-dd2.m4 \ ext_tests_nmssm/nmssm_ext-ee1.m4 \ ext_tests_nmssm/nmssm_ext-ee2.m4 \ ext_tests_nmssm/nmssm_ext-en.m4 \ ext_tests_nmssm/nmssm_ext-ga.m4 \ ext_tests_nmssm/nmssm_ext-gg.m4 \ ext_tests_nmssm/nmssm_ext-gw.m4 \ ext_tests_nmssm/nmssm_ext-gz.m4 \ ext_tests_nmssm/nmssm_ext-qg.m4 \ ext_tests_nmssm/nmssm_ext-tn.m4 \ ext_tests_nmssm/nmssm_ext-tt1.m4 \ ext_tests_nmssm/nmssm_ext-tt2.m4 \ ext_tests_nmssm/nmssm_ext-uu1.m4 \ ext_tests_nmssm/nmssm_ext-uu2.m4 \ ext_tests_nmssm/nmssm_ext-wa.m4 \ ext_tests_nmssm/nmssm_ext-ww1.m4 \ ext_tests_nmssm/nmssm_ext-ww2.m4 \ ext_tests_nmssm/nmssm_ext-wz.m4 \ ext_tests_nmssm/nmssm_ext-za.m4 \ ext_tests_nmssm/nmssm_ext-zz1.m4 \ ext_tests_nmssm/nmssm_ext-zz2.m4 EXT_MSSM_SIN = $(EXT_MSSM_M4:.m4=.sin) EXT_NMSSM_SIN = $(EXT_NMSSM_M4:.m4=.sin) EXT_ILC_SIN = \ ext_tests_ilc/ilc_ext.sin EXT_SHOWER_SIN = \ ext_tests_shower/shower_1_norad.sin \ ext_tests_shower/shower_2_aall.sin \ ext_tests_shower/shower_3_bb.sin \ ext_tests_shower/shower_3_jj.sin \ ext_tests_shower/shower_3_qqqq.sin \ ext_tests_shower/shower_3_tt.sin \ ext_tests_shower/shower_3_z_nu.sin \ ext_tests_shower/shower_3_z_tau.sin \ ext_tests_shower/shower_4_ee.sin \ ext_tests_shower/shower_5.sin \ ext_tests_shower/shower_6.sin EXT_NLO_SIN = \ ext_tests_nlo/nlo_settings.sin \ ext_tests_nlo/nlo_eejj.sin \ ext_tests_nlo/nlo_eejjj.sin \ ext_tests_nlo/nlo_ee4j.sin \ ext_tests_nlo/nlo_ee5j.sin \ ext_tests_nlo/nlo_eebb.sin \ ext_tests_nlo/nlo_eebbj.sin \ ext_tests_nlo/nlo_eebbjj.sin \ ext_tests_nlo/nlo_ee4b.sin \ ext_tests_nlo/nlo_eett.sin \ ext_tests_nlo/nlo_eettj.sin \ ext_tests_nlo/nlo_eettjj.sin \ ext_tests_nlo/nlo_eettjjj.sin \ ext_tests_nlo/nlo_eettbb.sin \ ext_tests_nlo/nlo_eetta.sin \ ext_tests_nlo/nlo_eettaa.sin \ ext_tests_nlo/nlo_eettaj.sin \ ext_tests_nlo/nlo_eettajj.sin \ ext_tests_nlo/nlo_eettaz.sin \ ext_tests_nlo/nlo_eettah.sin \ ext_tests_nlo/nlo_eettz.sin \ ext_tests_nlo/nlo_eettzj.sin \ ext_tests_nlo/nlo_eettzjj.sin \ ext_tests_nlo/nlo_eettzz.sin \ ext_tests_nlo/nlo_eettwjj.sin \ ext_tests_nlo/nlo_eettww.sin \ ext_tests_nlo/nlo_eetth.sin \ ext_tests_nlo/nlo_eetthj.sin \ ext_tests_nlo/nlo_eetthjj.sin \ ext_tests_nlo/nlo_eetthh.sin \ ext_tests_nlo/nlo_eetthz.sin \ ext_tests_nlo/nlo_ee4t.sin \ ext_tests_nlo/nlo_ee4tj.sin \ ext_tests_nlo/nlo_ppz.sin \ ext_tests_nlo/nlo_ppw.sin \ ext_tests_nlo/nlo_ppzz.sin \ ext_tests_nlo/nlo_ppzw.sin \ ext_tests_nlo/nlo_pptttt.sin EXT_NLO_ADD_SIN = \ ext_tests_nlo_add/nlo_decay_tbw.sin \ ext_tests_nlo_add/nlo_tt.sin \ ext_tests_nlo_add/nlo_tt_powheg.sin \ ext_tests_nlo_add/nlo_tt_powheg_sudakov.sin \ ext_tests_nlo_add/nlo_uu.sin \ ext_tests_nlo_add/nlo_uu_powheg.sin \ ext_tests_nlo_add/nlo_qq_powheg.sin \ ext_tests_nlo_add/nlo_threshold.sin \ ext_tests_nlo_add/nlo_threshold_factorized.sin \ ext_tests_nlo_add/nlo_methods_gosam.sin \ ext_tests_nlo_add/nlo_jets.sin \ ext_tests_nlo_add/nlo_fks_delta_o_eejj.sin \ ext_tests_nlo_add/nlo_fks_delta_i_ppee.sin all-local: $(TESTSUITES_SIN) if M4_AVAILABLE SUFFIXES = .m4 .sin .m4.sin: case "$@" in \ */*) \ mkdir -p `sed 's,/.[^/]*$$,,g' <<< "$@"` ;; \ esac $(M4) $(srcdir)/$(TESTSUITE_MACROS) $< > $@ endif M4_AVAILABLE Index: trunk/share/tests/functional_tests/ref-output-double/tauola_2.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-double/tauola_2.ref (revision 8406) +++ trunk/share/tests/functional_tests/ref-output-double/tauola_2.ref (revision 8407) @@ -1,351 +1,354 @@ ?openmp_logging = false ?vis_history = false ?integration_timer = false ?pacify = true | Process library 'tauola_2_lib': recorded process 'tauola_2_p1' | Process library 'tauola_2_lib': recorded process 'tauola_2_p2' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec1' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec2' | Process library 'tauola_2_lib': compiling ... | Process library 'tauola_2_lib': writing makefile | Process library 'tauola_2_lib': removing old files | Process library 'tauola_2_lib': writing driver | Process library 'tauola_2_lib': creating source code | Process library 'tauola_2_lib': compiling sources | Process library 'tauola_2_lib': linking | Process library 'tauola_2_lib': loading | Process library 'tauola_2_lib': ... success. openmp_num_threads = 1 seed = 0 ?ps_fsr_active = true ?hadronization_active = true $shower_method = "PYTHIA6" ?ps_taudec_active = true | Particle tau- declared as polarized | Particle tau+ declared as polarized | Particle W+ declared as polarized | Particle W- declared as polarized | Particle Z declared as polarized ?polarized_events = true sqrts = 2.50000E+02 error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 0 | Initializing integration for process tauola_2_dec1: | Beam structure: [any particles] | Beam data (decay): | H (mass = 1.2500000E+02 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec1.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec1' | Library name = 'tauola_2_lib' | Process index = 3 | Process components: | 1: 'tauola_2_dec1_i1': H => tau-, tau+ [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec1' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |=============================================================================| error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 1 | Initializing integration for process tauola_2_dec2: | Beam structure: [any particles] | Beam data (decay): | W- (mass = 8.0419000E+01 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec2.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec2' | Library name = 'tauola_2_lib' | Process index = 4 | Process components: | 1: 'tauola_2_dec2_i1': W- => tau-, nutaubar [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec2' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |=============================================================================| $beam_events_file = "uniform_spread_2.5%.dat" | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 2 | Initializing integration for process tauola_2_p1: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p1.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p1' | Library name = 'tauola_2_lib' | Process index = 1 | Process components: | 1: 'tauola_2_p1_i1': e-, e+ => numu, numubar, H [omega] | ------------------------------------------------------------------------ | Phase space: 2 channels, 5 dimensions | Phase space: found 2 channels, collected in 2 groves. | Phase space: Using 2 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 1 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p1' | Integrate: iterations = 1:1000:"gw" | Integrator: 2 chains, 2 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |-----------------------------------------------------------------------------| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 3 | Initializing integration for process tauola_2_p2: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p2.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p2' | Library name = 'tauola_2_lib' | Process index = 2 | Process components: | 1: 'tauola_2_p2_i1': e-, e+ => mu+, numu, W- [omega] | ------------------------------------------------------------------------ | Phase space: 11 channels, 5 dimensions | Phase space: found 11 channels, collected in 5 groves. | Phase space: Using 11 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 2 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p2' | Integrate: iterations = 1:1000:"gw" | Integrator: 5 chains, 11 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 990 8.130E+03 7.29E+02 8.97 2.82 8.0 |-----------------------------------------------------------------------------| 1 990 8.130E+03 7.29E+02 8.97 2.82 8.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' ?write_raw = false | Unstable particle H: computed branching ratios: | tauola_2_dec1: 1.0000000E+00 tau-, tau+ | Total width = 2.5876252E-04 GeV (computed) | = 4.1430000E-03 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p1" | Starting simulation for process 'tauola_2_p1' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p1.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec1.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 4 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 2.9737E-02 | Events: writing to STDHEP file 'tauola_2_p1.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p1.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | Unstable particle W-: computed branching ratios: | tauola_2_dec2: 1.0000000E+00 tau-, nutaubar | Total width = 2.2739738E-01 GeV (computed) | = 2.0490000E+00 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p2" | Starting simulation for process 'tauola_2_p2' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p2.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec2.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 5 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 1.2300E-04 | Events: writing to STDHEP file 'tauola_2_p2.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p2.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | There were no errors and 4 warning(s). | WHIZARD run finished. |=============================================================================| STDHEP EV4 version: ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p1.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 251.051 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| 25| 0.00|-3.31e+01, 3.96e+01, -4.04e+01| 1.41e+02| 1.25e+02| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 9, 9 ] [00000006] 6| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000007] 7| 15|-1.00| 2.57e+01, 2.24e+01, -6.64e+01| 7.46e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 12, 13 ] [00000008] 8| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 11, 11 ] [00000009] 9| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000010] 10| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 16 ] -[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 17, 19 ] +[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 17, 18 ] [00000013] 13| 22| 0.00| 8.23e-02, 4.77e-02, -1.87e-01| 2.10e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000014] 14| -16| 0.00|-8.66e+00, 2.92e+00, 3.83e+00| 9.91e+00| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000015] 15| -11| 1.00|-3.23e+01, 9.66e+00, 1.39e+01| 3.64e+01| 5.11e-04| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000016] 16| 12| 0.00|-1.78e+01, 4.57e+00, 8.26e+00| 2.02e+01| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000017] 17| 16| 0.00| 9.03e+00, 7.50e+00, -2.40e+01| 2.67e+01| 1.00e-02| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000018] 18| 13|-1.00| 4.23e+00, 4.34e+00, -1.11e+01| 1.27e+01| 1.06e-01| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000019] 19| -14| 0.00| 1.23e+01, 1.05e+01, -3.11e+01| 3.50e+01| 0.00e+00| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-4.05e+01, 1.14e+01, 1.74e+01| 4.56e+01| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| -13| 1.00|-1.55e+01, 4.95e+00, 7.03e+00| 1.77e+01| 1.06e-01| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000016] 16| 14| 0.00|-2.69e+00, 7.63e-01, 1.52e+00| 3.18e+00| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000017] 17| 16| 0.00| 4.76e+00, 3.82e+00, -1.06e+01| 1.22e+01| 1.00e-02| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000018] 18| -213|-1.00| 2.08e+01, 1.86e+01, -5.56e+01| 6.22e+01| 4.32e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 19, 20 ] +[00000019] 19| -211|-1.00| 6.16e+00, 5.45e+00, -1.67e+01| 1.86e+01| 1.40e-01| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| 111| 0.00| 1.47e+01, 1.31e+01, -3.89e+01| 4.36e+01| 1.35e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 21, 22 ] +[00000021] 21| 22| 0.00| 1.16e+01, 1.04e+01, -3.10e+01| 3.47e+01| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 22| 0.00| 3.04e+00, 2.70e+00, -7.93e+00| 8.91e+00| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p2.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 213.723 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 8.93e+01| 8.93e+01| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| -24|-1.00| 3.75e+01, 5.46e+01, 3.32e+00| 1.04e+02| 8.04e+01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 12, 14 ] [00000006] 6| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 11, 11 ] [00000007] 7| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 9, 9 ] [00000008] 8| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000009] 9| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 15, 16 ] [00000010] 10| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000012] 12| 22| 0.00|-1.24e-03,-1.04e-03, -1.35e-03| 2.11e-03| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000013] 13| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000014] 14| 22| 0.00|-9.16e-03,-1.55e-02, -1.37e-02| 2.27e-02| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000015] 15| 16| 0.00| 5.99e+01, 4.83e+01, -2.16e+00| 7.70e+01| 1.00e-02| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000016] 16| -211|-1.00| 1.60e+00, 1.56e+00, -2.26e-01| 2.25e+00| 1.40e-01| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== Index: trunk/share/tests/functional_tests/ref-output-double/tauola_3.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-double/tauola_3.ref (revision 0) +++ trunk/share/tests/functional_tests/ref-output-double/tauola_3.ref (revision 8407) @@ -0,0 +1,171 @@ +?openmp_logging = false +?vis_history = false +?integration_timer = false +?pacify = true +| Process library 'tauola_3_lib': recorded process 'tauola_3' +| Process library 'tauola_3_lib': compiling ... +| Process library 'tauola_3_lib': writing makefile +| Process library 'tauola_3_lib': removing old files +| Process library 'tauola_3_lib': writing driver +| Process library 'tauola_3_lib': creating source code +| Process library 'tauola_3_lib': compiling sources +| Process library 'tauola_3_lib': linking +| Process library 'tauola_3_lib': loading +| Process library 'tauola_3_lib': ... success. +openmp_num_threads = 1 +seed = 0 +?ps_fsr_active = true +?hadronization_active = true +$shower_method = "PYTHIA6" +?ps_taudec_active = true +| Particle tau- declared as polarized +| Particle tau+ declared as polarized +| Particle W+ declared as polarized +| Particle W- declared as polarized +| Particle Z declared as polarized +?polarized_events = true +sqrts = 2.50000E+02 +$beam_events_file = "uniform_spread_2.5%.dat" +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 0 +| Initializing integration for process tauola_3: +| Beam structure: e-, e+ => beam_events => isr +| polarization (beam 1): +| @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization (beam 2): +| @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization degree = 1.0000000, 1.0000000 +| Beam data (collision): +| e- (mass = 5.1099700E-04 GeV) polarized +| e+ (mass = 5.1099700E-04 GeV) polarized +| sqrts = 2.500000000000E+02 GeV +| Phase space: generating configuration ... +| Phase space: ... success. +| Phase space: writing configuration file 'tauola_3.i1.phs' +| ------------------------------------------------------------------------ +| Process [scattering]: 'tauola_3' +| Library name = 'tauola_3_lib' +| Process index = 1 +| Process components: +| 1: 'tauola_3_i1': e-, e+ => tau-, tau+, tau-, tau+ [omega] +| ------------------------------------------------------------------------ +| Phase space: 120 channels, 8 dimensions +| Phase space: found 120 channels, collected in 12 groves. +| Phase space: Using 768 equivalences between channels. +| Phase space: wood +| Beam structure: beam_events => isr, none => none, isr +| Beam structure: 2 channels, 2 dimensions +Warning: No cuts have been defined. +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Starting integration for process 'tauola_3' +| Integrate: iterations = 1:1200:"gw" +| Integrator: 12 chains, 120 channels, 10 dimensions +| Integrator: Using VAMP channel equivalences +| Integrator: 1200 initial calls, 20 bins, stratified = T +| Integrator: VAMP +|=============================================================================| +| It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | +|=============================================================================| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|-----------------------------------------------------------------------------| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|=============================================================================| +| Name clash for global logfile and process log: +| Renaming log file from tauola_3.log +| to tauola_3.var.log . +| Beam events: closed file 'uniform_spread_2.5%.dat' +?write_raw = false +n_events = 1 +$sample = "tauola_3_p1" +| Starting simulation for process 'tauola_3' +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Simulate: using integration grids from file 'tauola_3.m1.vg' +| Simulate: activating parton shower +| Shower: Using PYTHIA6 shower +| Simulate: activating hadronization +| Hadronization: Using PYTHIA6 interface for hadronization and decays +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 1 +| Simulation: requested number of events = 1 +| corr. to luminosity [fb-1] = 8.2346E-02 +| Events: writing to STDHEP file 'tauola_3_p1.ev4.hep' +| Events: generating 1 unweighted, polarized events ... +| Events: event normalization mode '1' +| ... event sample complete. +| Events: actual unweighting efficiency = 100.00 % +| Events: closing STDHEP file 'tauola_3_p1.ev4.hep' +| Beam events: closed file 'uniform_spread_2.5%.dat' +| There were no errors and 1 warning(s). +| WHIZARD run finished. +|=============================================================================| +STDHEP EV4 version: +==================================================== + WHIZARD StdHep Reader : + opened file : tauola_3_p1.ev4.hep +====== File Header =========== + total blocks: [...] + version: 2.01 + title: WHIZARD [version] + comment: No comment + date: [...] + closing date: [...] + expected events: 1 + events: 3 + firstTable: -1 + dimTable: 100 + nNTuples: 0 + nBlocks: 8 + block names: + : Standard HEP COMMON block, see STDHEP Product + : Standard HEP COMMON block with multiple interaction, see STDHEP Product + : Stdhep begin run record, see STDHEP Product + : Stdhep end run record, see STDHEP Product + : Standard HEP COMMON block with Les Houches, see STDHEP Product + : Standard HEP COMMON block with Les Houches and multiple interaction + : Les Houches HEPEUP common block + : Les Houches HEPRUP common block +============================= +Process ID = 1 Weight = 1 Scale = 253.512 aQED = -1 aQCD = 0.1178 + Event #0 +[ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] +[00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] +[00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] +[00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000004] 4| 15|-1.00| 6.34e+01, 3.25e+01, 7.59e+01| 1.04e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 10, 11 ] +[00000005] 5| -15| 1.00|-2.31e+01,-2.07e+01, 2.58e+01| 4.04e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 8, 8 ] +[00000006] 6| 15|-1.00|-2.24e+00, 1.34e+00, -2.19e+01| 2.21e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 12, 13 ] +[00000007] 7| -15| 1.00|-3.80e+01,-1.32e+01, -7.71e+01| 8.70e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 9, 9 ] +[00000008] 8| -15| 1.00|-2.30e+01,-2.05e+01, 2.56e+01| 4.01e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 15 ] +[00000009] 9| -15| 1.00|-3.78e+01,-1.31e+01, -7.65e+01| 8.64e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 19, 21 ] +[00000010] 10| 15|-1.00| 6.40e+01, 3.07e+01, 7.44e+01| 1.03e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 22, 23 ] +[00000011] 11| 22| 0.00|-1.01e+00, 1.58e+00, 9.20e-01| 2.08e+00| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000012] 12| 15|-1.00|-1.61e+00, 1.05e+00, -2.11e+01| 2.12e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 26, 27 ] +[00000013] 13| 22| 0.00|-6.16e-01, 2.81e-01, -6.41e-01| 9.33e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-6.61e+00,-5.29e+00, 7.06e+00| 1.10e+01| 1.00e-02| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| 20213| 1.00|-1.64e+01,-1.52e+01, 1.85e+01| 2.91e+01| 1.24e+00| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 16, 18 ] +[00000016] 16| 111| 0.00|-2.18e+00,-2.05e+00, 2.19e+00| 3.71e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 30, 31 ] +[00000017] 17| 111| 0.00|-2.38e+00,-2.64e+00, 2.92e+00| 4.61e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 32, 33 ] +[00000018] 18| 211| 1.00|-1.18e+01,-1.05e+01, 1.34e+01| 2.07e+01| 1.40e-01| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000019] 19| -16| 0.00|-2.93e-01,-1.68e-01, -4.27e-01| 5.45e-01| 1.00e-02| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| -11| 1.00|-3.69e+01,-1.26e+01, -7.46e+01| 8.41e+01| 5.11e-04| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000021] 21| 12| 0.00|-6.20e-01,-3.04e-01, -1.55e+00| 1.70e+00| 0.00e+00| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 16| 0.00| 4.39e+01, 2.06e+01, 5.03e+01| 6.99e+01| 1.00e-02| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000023] 23| -213|-1.00| 2.00e+01, 1.01e+01, 2.41e+01| 3.29e+01| 6.99e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 24, 25 ] +[00000024] 24| -211|-1.00| 9.71e+00, 4.62e+00, 1.12e+01| 1.56e+01| 1.40e-01| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000025] 25| 111| 0.00| 1.03e+01, 5.51e+00, 1.28e+01| 1.74e+01| 1.35e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 34, 35 ] +[00000026] 26| 16| 0.00|-1.60e-01,-3.89e-01, -2.96e+00| 2.99e+00| 1.00e-02| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000027] 27| -213|-1.00|-1.45e+00, 1.44e+00, -1.81e+01| 1.82e+01| 7.93e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 28, 29 ] +[00000028] 28| -211|-1.00|-5.95e-01, 7.93e-01, -5.89e+00| 5.98e+00| 1.40e-01| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000029] 29| 111| 0.00|-8.50e-01, 6.48e-01, -1.22e+01| 1.23e+01| 1.35e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 36, 37 ] +[00000030] 30| 22| 0.00|-2.06e+00,-1.97e+00, 2.05e+00| 3.51e+00| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000031] 31| 22| 0.00|-1.20e-01,-8.84e-02, 1.39e-01| 2.04e-01| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000032] 32| 22| 0.00|-1.85e+00,-2.01e+00, 2.18e+00| 3.49e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000033] 33| 22| 0.00|-5.33e-01,-6.31e-01, 7.44e-01| 1.11e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000034] 34| 22| 0.00| 1.04e+00, 5.21e-01, 1.31e+00| 1.75e+00| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000035] 35| 22| 0.00| 9.29e+00, 4.99e+00, 1.15e+01| 1.56e+01| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000036] 36| 22| 0.00|-6.26e-02, 8.01e-02, -8.59e-01| 8.65e-01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000037] 37| 22| 0.00|-7.87e-01, 5.67e-01, -1.13e+01| 1.14e+01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] + converted 1 events - written to stdout +==================================================== + Index: trunk/share/tests/functional_tests/tauola_1.sin =================================================================== --- trunk/share/tests/functional_tests/tauola_1.sin (revision 8406) +++ trunk/share/tests/functional_tests/tauola_1.sin (revision 8407) @@ -1,40 +1,40 @@ # SINDARIN input for WHIZARD self-test model = SM ?logging = true ?openmp_logging = false ?vis_history = false ?integration_timer = false ?pacify = true process tauola_1_p1 = e1, E1 => e3, E3 compile !!! Tests should be run single-threaded openmp_num_threads = 1 seed = 0 ?ps_fsr_active = true ?hadronization_active = true $shower_method = "PYTHIA6" ?ps_taudec_active = true polarized e3, E3, "W+", "W-", Z ?polarized_events = true sqrts = 250 GeV beams = e1, E1 => beam_events => isr $beam_events_file = "uniform_spread_2.5%.dat" beams_pol_density = @(-1), @(+1) iterations = 1:1000:"gw" -integrate ( tauola_1_p1 ) +integrate (tauola_1_p1) sample_format = stdhep_ev4 ?write_raw = false n_events = 1 $sample = "tauola_1_p1" -simulate ( tauola_1_p1 ) +simulate (tauola_1_p1) Index: trunk/share/tests/functional_tests/ref-output-quad/tauola_2.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-quad/tauola_2.ref (revision 8406) +++ trunk/share/tests/functional_tests/ref-output-quad/tauola_2.ref (revision 8407) @@ -1,351 +1,354 @@ ?openmp_logging = false ?vis_history = false ?integration_timer = false ?pacify = true | Process library 'tauola_2_lib': recorded process 'tauola_2_p1' | Process library 'tauola_2_lib': recorded process 'tauola_2_p2' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec1' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec2' | Process library 'tauola_2_lib': compiling ... | Process library 'tauola_2_lib': writing makefile | Process library 'tauola_2_lib': removing old files | Process library 'tauola_2_lib': writing driver | Process library 'tauola_2_lib': creating source code | Process library 'tauola_2_lib': compiling sources | Process library 'tauola_2_lib': linking | Process library 'tauola_2_lib': loading | Process library 'tauola_2_lib': ... success. openmp_num_threads = 1 seed = 0 ?ps_fsr_active = true ?hadronization_active = true $shower_method = "PYTHIA6" ?ps_taudec_active = true | Particle tau- declared as polarized | Particle tau+ declared as polarized | Particle W+ declared as polarized | Particle W- declared as polarized | Particle Z declared as polarized ?polarized_events = true sqrts = 2.50000E+02 error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 0 | Initializing integration for process tauola_2_dec1: | Beam structure: [any particles] | Beam data (decay): | H (mass = 1.2500000E+02 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec1.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec1' | Library name = 'tauola_2_lib' | Process index = 3 | Process components: | 1: 'tauola_2_dec1_i1': H => tau-, tau+ [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec1' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |=============================================================================| error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 1 | Initializing integration for process tauola_2_dec2: | Beam structure: [any particles] | Beam data (decay): | W- (mass = 8.0419000E+01 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec2.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec2' | Library name = 'tauola_2_lib' | Process index = 4 | Process components: | 1: 'tauola_2_dec2_i1': W- => tau-, nutaubar [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec2' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |=============================================================================| $beam_events_file = "uniform_spread_2.5%.dat" | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 2 | Initializing integration for process tauola_2_p1: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p1.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p1' | Library name = 'tauola_2_lib' | Process index = 1 | Process components: | 1: 'tauola_2_p1_i1': e-, e+ => numu, numubar, H [omega] | ------------------------------------------------------------------------ | Phase space: 2 channels, 5 dimensions | Phase space: found 2 channels, collected in 2 groves. | Phase space: Using 2 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 1 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p1' | Integrate: iterations = 1:1000:"gw" | Integrator: 2 chains, 2 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |-----------------------------------------------------------------------------| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 3 | Initializing integration for process tauola_2_p2: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p2.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p2' | Library name = 'tauola_2_lib' | Process index = 2 | Process components: | 1: 'tauola_2_p2_i1': e-, e+ => mu+, numu, W- [omega] | ------------------------------------------------------------------------ | Phase space: 11 channels, 5 dimensions | Phase space: found 11 channels, collected in 5 groves. | Phase space: Using 11 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 2 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p2' | Integrate: iterations = 1:1000:"gw" | Integrator: 5 chains, 11 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 990 8.129E+03 7.29E+02 8.97 2.82 8.0 |-----------------------------------------------------------------------------| 1 990 8.129E+03 7.29E+02 8.97 2.82 8.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' ?write_raw = false | Unstable particle H: computed branching ratios: | tauola_2_dec1: 1.0000000E+00 tau-, tau+ | Total width = 2.5876252E-04 GeV (computed) | = 4.1430000E-03 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p1" | Starting simulation for process 'tauola_2_p1' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p1.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec1.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 4 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 2.9737E-02 | Events: writing to STDHEP file 'tauola_2_p1.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p1.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | Unstable particle W-: computed branching ratios: | tauola_2_dec2: 1.0000000E+00 tau-, nutaubar | Total width = 2.2739738E-01 GeV (computed) | = 2.0490000E+00 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p2" | Starting simulation for process 'tauola_2_p2' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p2.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec2.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 5 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 1.2301E-04 | Events: writing to STDHEP file 'tauola_2_p2.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p2.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | There were no errors and 4 warning(s). | WHIZARD run finished. |=============================================================================| STDHEP EV4 version: ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p1.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 251.051 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| 25| 0.00|-3.31e+01, 3.96e+01, -4.04e+01| 1.41e+02| 1.25e+02| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 9, 9 ] [00000006] 6| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000007] 7| 15|-1.00| 2.57e+01, 2.24e+01, -6.64e+01| 7.46e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 12, 13 ] [00000008] 8| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 11, 11 ] [00000009] 9| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000010] 10| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 16 ] -[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 17, 19 ] +[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 17, 18 ] [00000013] 13| 22| 0.00| 8.23e-02, 4.77e-02, -1.87e-01| 2.10e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000014] 14| -16| 0.00|-8.66e+00, 2.92e+00, 3.83e+00| 9.91e+00| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000015] 15| -11| 1.00|-3.23e+01, 9.66e+00, 1.39e+01| 3.64e+01| 5.11e-04| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000016] 16| 12| 0.00|-1.78e+01, 4.57e+00, 8.26e+00| 2.02e+01| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000017] 17| 16| 0.00| 9.03e+00, 7.50e+00, -2.40e+01| 2.67e+01| 1.00e-02| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000018] 18| 13|-1.00| 4.23e+00, 4.34e+00, -1.11e+01| 1.27e+01| 1.06e-01| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000019] 19| -14| 0.00| 1.23e+01, 1.05e+01, -3.11e+01| 3.50e+01| 0.00e+00| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-4.05e+01, 1.14e+01, 1.74e+01| 4.56e+01| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| -13| 1.00|-1.55e+01, 4.95e+00, 7.03e+00| 1.77e+01| 1.06e-01| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000016] 16| 14| 0.00|-2.69e+00, 7.63e-01, 1.52e+00| 3.18e+00| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000017] 17| 16| 0.00| 4.76e+00, 3.82e+00, -1.06e+01| 1.22e+01| 1.00e-02| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000018] 18| -213|-1.00| 2.08e+01, 1.86e+01, -5.56e+01| 6.22e+01| 4.32e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 19, 20 ] +[00000019] 19| -211|-1.00| 6.16e+00, 5.45e+00, -1.67e+01| 1.86e+01| 1.40e-01| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| 111| 0.00| 1.47e+01, 1.31e+01, -3.89e+01| 4.36e+01| 1.35e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 21, 22 ] +[00000021] 21| 22| 0.00| 1.16e+01, 1.04e+01, -3.10e+01| 3.47e+01| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 22| 0.00| 3.04e+00, 2.70e+00, -7.93e+00| 8.91e+00| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p2.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 213.723 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 8.93e+01| 8.93e+01| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| -24|-1.00| 3.75e+01, 5.46e+01, 3.32e+00| 1.04e+02| 8.04e+01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 12, 14 ] [00000006] 6| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 11, 11 ] [00000007] 7| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 9, 9 ] [00000008] 8| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000009] 9| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 15, 16 ] [00000010] 10| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000012] 12| 22| 0.00|-1.24e-03,-1.04e-03, -1.35e-03| 2.11e-03| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000013] 13| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000014] 14| 22| 0.00|-9.16e-03,-1.55e-02, -1.37e-02| 2.27e-02| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000015] 15| 16| 0.00| 5.99e+01, 4.83e+01, -2.16e+00| 7.70e+01| 1.00e-02| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000016] 16| -211|-1.00| 1.60e+00, 1.56e+00, -2.26e-01| 2.25e+00| 1.40e-01| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== Index: trunk/share/tests/functional_tests/ref-output-quad/tauola_3.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-quad/tauola_3.ref (revision 0) +++ trunk/share/tests/functional_tests/ref-output-quad/tauola_3.ref (revision 8407) @@ -0,0 +1,171 @@ +?openmp_logging = false +?vis_history = false +?integration_timer = false +?pacify = true +| Process library 'tauola_3_lib': recorded process 'tauola_3' +| Process library 'tauola_3_lib': compiling ... +| Process library 'tauola_3_lib': writing makefile +| Process library 'tauola_3_lib': removing old files +| Process library 'tauola_3_lib': writing driver +| Process library 'tauola_3_lib': creating source code +| Process library 'tauola_3_lib': compiling sources +| Process library 'tauola_3_lib': linking +| Process library 'tauola_3_lib': loading +| Process library 'tauola_3_lib': ... success. +openmp_num_threads = 1 +seed = 0 +?ps_fsr_active = true +?hadronization_active = true +$shower_method = "PYTHIA6" +?ps_taudec_active = true +| Particle tau- declared as polarized +| Particle tau+ declared as polarized +| Particle W+ declared as polarized +| Particle W- declared as polarized +| Particle Z declared as polarized +?polarized_events = true +sqrts = 2.50000E+02 +$beam_events_file = "uniform_spread_2.5%.dat" +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 0 +| Initializing integration for process tauola_3: +| Beam structure: e-, e+ => beam_events => isr +| polarization (beam 1): +| @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization (beam 2): +| @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization degree = 1.0000000, 1.0000000 +| Beam data (collision): +| e- (mass = 5.1099700E-04 GeV) polarized +| e+ (mass = 5.1099700E-04 GeV) polarized +| sqrts = 2.500000000000E+02 GeV +| Phase space: generating configuration ... +| Phase space: ... success. +| Phase space: writing configuration file 'tauola_3.i1.phs' +| ------------------------------------------------------------------------ +| Process [scattering]: 'tauola_3' +| Library name = 'tauola_3_lib' +| Process index = 1 +| Process components: +| 1: 'tauola_3_i1': e-, e+ => tau-, tau+, tau-, tau+ [omega] +| ------------------------------------------------------------------------ +| Phase space: 120 channels, 8 dimensions +| Phase space: found 120 channels, collected in 12 groves. +| Phase space: Using 768 equivalences between channels. +| Phase space: wood +| Beam structure: beam_events => isr, none => none, isr +| Beam structure: 2 channels, 2 dimensions +Warning: No cuts have been defined. +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Starting integration for process 'tauola_3' +| Integrate: iterations = 1:1200:"gw" +| Integrator: 12 chains, 120 channels, 10 dimensions +| Integrator: Using VAMP channel equivalences +| Integrator: 1200 initial calls, 20 bins, stratified = T +| Integrator: VAMP +|=============================================================================| +| It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | +|=============================================================================| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|-----------------------------------------------------------------------------| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|=============================================================================| +| Name clash for global logfile and process log: +| Renaming log file from tauola_3.log +| to tauola_3.var.log . +| Beam events: closed file 'uniform_spread_2.5%.dat' +?write_raw = false +n_events = 1 +$sample = "tauola_3_p1" +| Starting simulation for process 'tauola_3' +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Simulate: using integration grids from file 'tauola_3.m1.vg' +| Simulate: activating parton shower +| Shower: Using PYTHIA6 shower +| Simulate: activating hadronization +| Hadronization: Using PYTHIA6 interface for hadronization and decays +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 1 +| Simulation: requested number of events = 1 +| corr. to luminosity [fb-1] = 8.2372E-02 +| Events: writing to STDHEP file 'tauola_3_p1.ev4.hep' +| Events: generating 1 unweighted, polarized events ... +| Events: event normalization mode '1' +| ... event sample complete. +| Events: actual unweighting efficiency = 100.00 % +| Events: closing STDHEP file 'tauola_3_p1.ev4.hep' +| Beam events: closed file 'uniform_spread_2.5%.dat' +| There were no errors and 1 warning(s). +| WHIZARD run finished. +|=============================================================================| +STDHEP EV4 version: +==================================================== + WHIZARD StdHep Reader : + opened file : tauola_3_p1.ev4.hep +====== File Header =========== + total blocks: [...] + version: 2.01 + title: WHIZARD [version] + comment: No comment + date: [...] + closing date: [...] + expected events: 1 + events: 3 + firstTable: -1 + dimTable: 100 + nNTuples: 0 + nBlocks: 8 + block names: + : Standard HEP COMMON block, see STDHEP Product + : Standard HEP COMMON block with multiple interaction, see STDHEP Product + : Stdhep begin run record, see STDHEP Product + : Stdhep end run record, see STDHEP Product + : Standard HEP COMMON block with Les Houches, see STDHEP Product + : Standard HEP COMMON block with Les Houches and multiple interaction + : Les Houches HEPEUP common block + : Les Houches HEPRUP common block +============================= +Process ID = 1 Weight = 1 Scale = 253.512 aQED = -1 aQCD = 0.1178 + Event #0 +[ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] +[00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] +[00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] +[00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000004] 4| 15|-1.00| 6.34e+01, 3.25e+01, 7.59e+01| 1.04e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 10, 11 ] +[00000005] 5| -15| 1.00|-2.31e+01,-2.07e+01, 2.58e+01| 4.04e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 8, 8 ] +[00000006] 6| 15|-1.00|-2.24e+00, 1.34e+00, -2.19e+01| 2.21e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 12, 13 ] +[00000007] 7| -15| 1.00|-3.80e+01,-1.32e+01, -7.71e+01| 8.70e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 9, 9 ] +[00000008] 8| -15| 1.00|-2.30e+01,-2.05e+01, 2.56e+01| 4.01e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 15 ] +[00000009] 9| -15| 1.00|-3.78e+01,-1.31e+01, -7.65e+01| 8.64e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 19, 21 ] +[00000010] 10| 15|-1.00| 6.40e+01, 3.07e+01, 7.44e+01| 1.03e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 22, 23 ] +[00000011] 11| 22| 0.00|-1.01e+00, 1.58e+00, 9.20e-01| 2.08e+00| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000012] 12| 15|-1.00|-1.61e+00, 1.05e+00, -2.11e+01| 2.12e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 26, 27 ] +[00000013] 13| 22| 0.00|-6.16e-01, 2.81e-01, -6.41e-01| 9.33e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-6.61e+00,-5.29e+00, 7.06e+00| 1.10e+01| 1.00e-02| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| 20213| 1.00|-1.64e+01,-1.52e+01, 1.85e+01| 2.91e+01| 1.24e+00| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 16, 18 ] +[00000016] 16| 111| 0.00|-2.18e+00,-2.05e+00, 2.19e+00| 3.71e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 30, 31 ] +[00000017] 17| 111| 0.00|-2.38e+00,-2.64e+00, 2.92e+00| 4.61e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 32, 33 ] +[00000018] 18| 211| 1.00|-1.18e+01,-1.05e+01, 1.34e+01| 2.07e+01| 1.40e-01| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000019] 19| -16| 0.00|-2.93e-01,-1.68e-01, -4.27e-01| 5.45e-01| 1.00e-02| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| -11| 1.00|-3.69e+01,-1.26e+01, -7.46e+01| 8.41e+01| 5.11e-04| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000021] 21| 12| 0.00|-6.20e-01,-3.04e-01, -1.55e+00| 1.70e+00| 0.00e+00| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 16| 0.00| 4.39e+01, 2.06e+01, 5.03e+01| 6.99e+01| 1.00e-02| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000023] 23| -213|-1.00| 2.00e+01, 1.01e+01, 2.41e+01| 3.29e+01| 6.99e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 24, 25 ] +[00000024] 24| -211|-1.00| 9.71e+00, 4.62e+00, 1.12e+01| 1.56e+01| 1.40e-01| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000025] 25| 111| 0.00| 1.03e+01, 5.51e+00, 1.28e+01| 1.74e+01| 1.35e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 34, 35 ] +[00000026] 26| 16| 0.00|-1.60e-01,-3.89e-01, -2.96e+00| 2.99e+00| 1.00e-02| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000027] 27| -213|-1.00|-1.45e+00, 1.44e+00, -1.81e+01| 1.82e+01| 7.93e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 28, 29 ] +[00000028] 28| -211|-1.00|-5.95e-01, 7.93e-01, -5.89e+00| 5.98e+00| 1.40e-01| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000029] 29| 111| 0.00|-8.50e-01, 6.48e-01, -1.22e+01| 1.23e+01| 1.35e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 36, 37 ] +[00000030] 30| 22| 0.00|-2.06e+00,-1.97e+00, 2.05e+00| 3.51e+00| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000031] 31| 22| 0.00|-1.20e-01,-8.84e-02, 1.39e-01| 2.04e-01| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000032] 32| 22| 0.00|-1.85e+00,-2.01e+00, 2.18e+00| 3.49e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000033] 33| 22| 0.00|-5.33e-01,-6.31e-01, 7.44e-01| 1.11e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000034] 34| 22| 0.00| 1.04e+00, 5.21e-01, 1.31e+00| 1.75e+00| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000035] 35| 22| 0.00| 9.29e+00, 4.99e+00, 1.15e+01| 1.56e+01| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000036] 36| 22| 0.00|-6.26e-02, 8.01e-02, -8.59e-01| 8.65e-01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000037] 37| 22| 0.00|-7.87e-01, 5.67e-01, -1.13e+01| 1.14e+01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] + converted 1 events - written to stdout +==================================================== + Index: trunk/share/tests/functional_tests/tauola_2.sin =================================================================== --- trunk/share/tests/functional_tests/tauola_2.sin (revision 8406) +++ trunk/share/tests/functional_tests/tauola_2.sin (revision 8407) @@ -1,56 +1,56 @@ # SINDARIN input for WHIZARD self-test model = SM ?logging = true ?openmp_logging = false ?vis_history = false ?integration_timer = false ?pacify = true process tauola_2_p1 = e1, E1 => n2, N2, H process tauola_2_p2 = e1, E1 => E2, n2, Wm process tauola_2_dec1 = H => e3, E3 process tauola_2_dec2 = Wm => e3, N3 compile !!! Tests should be run single-threaded openmp_num_threads = 1 seed = 0 ?ps_fsr_active = true ?hadronization_active = true $shower_method = "PYTHIA6" ?ps_taudec_active = true polarized e3, E3, Wp, Wm, Z ?polarized_events = true sqrts = 250 GeV -integrate ( tauola_2_dec1 ) { iterations = 1:10 error_threshold = 1E-8 } -integrate ( tauola_2_dec2 ) { iterations = 1:10 error_threshold = 1E-8 } +integrate (tauola_2_dec1) { iterations = 1:10 error_threshold = 1E-8 } +integrate (tauola_2_dec2) { iterations = 1:10 error_threshold = 1E-8 } beams = e1, E1 => beam_events => isr $beam_events_file = "uniform_spread_2.5%.dat" beams_pol_density = @(-1), @(+1) iterations = 1:1000:"gw" -integrate ( tauola_2_p1 ) -integrate ( tauola_2_p2 ) +integrate (tauola_2_p1) +integrate (tauola_2_p2) sample_format = stdhep_ev4 ?write_raw = false unstable H (tauola_2_dec1) n_events = 1 $sample = "tauola_2_p1" -simulate ( tauola_2_p1 ) +simulate (tauola_2_p1) unstable Wm (tauola_2_dec2) n_events = 1 $sample = "tauola_2_p2" -simulate ( tauola_2_p2 ) +simulate (tauola_2_p2) Index: trunk/share/tests/functional_tests/tauola_3.sin =================================================================== --- trunk/share/tests/functional_tests/tauola_3.sin (revision 0) +++ trunk/share/tests/functional_tests/tauola_3.sin (revision 8407) @@ -0,0 +1,43 @@ +# SINDARIN input for WHIZARD self-test +# Testing PYTHIA6/TAUOLA for a four-tau final state + +model = SM + +?logging = true +?openmp_logging = false +?vis_history = false +?integration_timer = false +?pacify = true + +process tauola_3 = e1, E1 => e3, E3, e3, E3 + +compile + +!!! Tests should be run single-threaded +openmp_num_threads = 1 + +seed = 0 +?ps_fsr_active = true +?hadronization_active = true +$shower_method = "PYTHIA6" +?ps_taudec_active = true + +polarized e3, E3, Wp, Wm, Z +?polarized_events = true + +sqrts = 250 GeV + +beams = e1, E1 => beam_events => isr +$beam_events_file = "uniform_spread_2.5%.dat" +beams_pol_density = @(-1), @(+1) + +iterations = 1:1200:"gw" +integrate (tauola_3) + +sample_format = stdhep_ev4 +?write_raw = false + + +n_events = 1 +$sample = "tauola_3_p1" +simulate (tauola_3) Index: trunk/share/tests/functional_tests/ref-output-ext/tauola_2.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-ext/tauola_2.ref (revision 8406) +++ trunk/share/tests/functional_tests/ref-output-ext/tauola_2.ref (revision 8407) @@ -1,351 +1,354 @@ ?openmp_logging = false ?vis_history = false ?integration_timer = false ?pacify = true | Process library 'tauola_2_lib': recorded process 'tauola_2_p1' | Process library 'tauola_2_lib': recorded process 'tauola_2_p2' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec1' | Process library 'tauola_2_lib': recorded process 'tauola_2_dec2' | Process library 'tauola_2_lib': compiling ... | Process library 'tauola_2_lib': writing makefile | Process library 'tauola_2_lib': removing old files | Process library 'tauola_2_lib': writing driver | Process library 'tauola_2_lib': creating source code | Process library 'tauola_2_lib': compiling sources | Process library 'tauola_2_lib': linking | Process library 'tauola_2_lib': loading | Process library 'tauola_2_lib': ... success. openmp_num_threads = 1 seed = 0 ?ps_fsr_active = true ?hadronization_active = true $shower_method = "PYTHIA6" ?ps_taudec_active = true | Particle tau- declared as polarized | Particle tau+ declared as polarized | Particle W+ declared as polarized | Particle W- declared as polarized | Particle Z declared as polarized ?polarized_events = true sqrts = 2.50000E+02 error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 0 | Initializing integration for process tauola_2_dec1: | Beam structure: [any particles] | Beam data (decay): | H (mass = 1.2500000E+02 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec1.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec1' | Library name = 'tauola_2_lib' | Process index = 3 | Process components: | 1: 'tauola_2_dec1_i1': H => tau-, tau+ [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec1' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.588E-04 0.00E+00 0.00 0.00 100.0 |=============================================================================| error_threshold = 1.00000E-08 | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 1 | Initializing integration for process tauola_2_dec2: | Beam structure: [any particles] | Beam data (decay): | W- (mass = 8.0419000E+01 GeV) | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_dec2.i1.phs' | ------------------------------------------------------------------------ | Process [decay]: 'tauola_2_dec2' | Library name = 'tauola_2_lib' | Process index = 4 | Process components: | 1: 'tauola_2_dec2_i1': W- => tau-, nutaubar [omega] | ------------------------------------------------------------------------ | Phase space: 1 channels, 2 dimensions | Phase space: found 1 channel, collected in 1 grove. | Phase space: Using 1 equivalence between channels. | Phase space: wood Warning: No cuts have been defined. | Starting integration for process 'tauola_2_dec2' | Integrate: iterations = 1:10 | Integrator: 1 chains, 1 channels, 2 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 10 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[GeV] Error[GeV] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |-----------------------------------------------------------------------------| 1 10 2.274E-01 0.00E+00 0.00 0.00 100.0 |=============================================================================| $beam_events_file = "uniform_spread_2.5%.dat" | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 2 | Initializing integration for process tauola_2_p1: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p1.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p1' | Library name = 'tauola_2_lib' | Process index = 1 | Process components: | 1: 'tauola_2_p1_i1': e-, e+ => numu, numubar, H [omega] | ------------------------------------------------------------------------ | Phase space: 2 channels, 5 dimensions | Phase space: found 2 channels, collected in 2 groves. | Phase space: Using 2 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 1 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p1' | Integrate: iterations = 1:1000:"gw" | Integrator: 2 chains, 2 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |-----------------------------------------------------------------------------| 1 1000 3.363E+01 1.61E+00 4.78 1.51 10.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 3 | Initializing integration for process tauola_2_p2: | Beam structure: e-, e+ => beam_events => isr | polarization (beam 1): | @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization (beam 2): | @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) | polarization degree = 1.0000000, 1.0000000 | Beam data (collision): | e- (mass = 5.1099700E-04 GeV) polarized | e+ (mass = 5.1099700E-04 GeV) polarized | sqrts = 2.500000000000E+02 GeV | Phase space: generating configuration ... | Phase space: ... success. | Phase space: writing configuration file 'tauola_2_p2.i1.phs' | ------------------------------------------------------------------------ | Process [scattering]: 'tauola_2_p2' | Library name = 'tauola_2_lib' | Process index = 2 | Process components: | 1: 'tauola_2_p2_i1': e-, e+ => mu+, numu, W- [omega] | ------------------------------------------------------------------------ | Phase space: 11 channels, 5 dimensions | Phase space: found 11 channels, collected in 5 groves. | Phase space: Using 11 equivalences between channels. | Phase space: wood | Beam structure: beam_events => isr, none => none, isr | Beam structure: 2 channels, 2 dimensions Warning: No cuts have been defined. | Beam events: reading from file 'uniform_spread_2.5%.dat' | Starting integration for process 'tauola_2_p2' | Integrate: iterations = 1:1000:"gw" | Integrator: 5 chains, 11 channels, 7 dimensions | Integrator: Using VAMP channel equivalences | Integrator: 1000 initial calls, 20 bins, stratified = T | Integrator: VAMP |=============================================================================| | It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | |=============================================================================| 1 990 8.130E+03 7.29E+02 8.97 2.82 8.0 |-----------------------------------------------------------------------------| 1 990 8.130E+03 7.29E+02 8.97 2.82 8.0 |=============================================================================| | Beam events: closed file 'uniform_spread_2.5%.dat' ?write_raw = false | Unstable particle H: computed branching ratios: | tauola_2_dec1: 1.0000000E+00 tau-, tau+ | Total width = 2.5876252E-04 GeV (computed) | = 4.1430000E-03 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p1" | Starting simulation for process 'tauola_2_p1' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p1.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec1.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 4 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 2.9737E-02 | Events: writing to STDHEP file 'tauola_2_p1.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p1.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | Unstable particle W-: computed branching ratios: | tauola_2_dec2: 1.0000000E+00 tau-, nutaubar | Total width = 2.2739738E-01 GeV (computed) | = 2.0490000E+00 GeV (preset) | Decay options: helicity treated exactly n_events = 1 $sample = "tauola_2_p2" | Starting simulation for process 'tauola_2_p2' | Beam events: reading from file 'uniform_spread_2.5%.dat' | Simulate: using integration grids from file 'tauola_2_p2.m1.vg' | Simulate: activating decays | Simulate: activating parton shower | Shower: Using PYTHIA6 shower | Simulate: activating hadronization | Hadronization: Using PYTHIA6 interface for hadronization and decays | Simulate: using integration grids from file 'tauola_2_dec2.m1.vg' | RNG: Initializing TAO random-number generator | RNG: Setting seed for random-number generator to 5 | Simulation: requested number of events = 1 | corr. to luminosity [fb-1] = 1.2300E-04 | Events: writing to STDHEP file 'tauola_2_p2.ev4.hep' | Events: generating 1 unweighted, polarized events ... | Events: event normalization mode '1' | ... event sample complete. | Events: actual unweighting efficiency = 8.33 % | Events: closing STDHEP file 'tauola_2_p2.ev4.hep' | Beam events: closed file 'uniform_spread_2.5%.dat' | There were no errors and 4 warning(s). | WHIZARD run finished. |=============================================================================| STDHEP EV4 version: ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p1.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 251.051 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| 25| 0.00|-3.31e+01, 3.96e+01, -4.04e+01| 1.41e+02| 1.25e+02| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 9, 9 ] [00000006] 6| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000007] 7| 15|-1.00| 2.57e+01, 2.24e+01, -6.64e+01| 7.46e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 12, 13 ] [00000008] 8| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 11, 11 ] [00000009] 9| 14| 0.00| 1.31e-01,-2.75e+01, 6.09e+01| 6.68e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000010] 10| -14| 0.00| 3.29e+01,-1.21e+01, -2.52e+01| 4.32e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| -15| 1.00|-5.87e+01, 1.72e+01, 2.59e+01| 6.65e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 16 ] -[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 17, 19 ] +[00000012] 12| 15|-1.00| 2.56e+01, 2.24e+01, -6.62e+01| 7.44e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 17, 18 ] [00000013] 13| 22| 0.00| 8.23e-02, 4.77e-02, -1.87e-01| 2.10e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000014] 14| -16| 0.00|-8.66e+00, 2.92e+00, 3.83e+00| 9.91e+00| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000015] 15| -11| 1.00|-3.23e+01, 9.66e+00, 1.39e+01| 3.64e+01| 5.11e-04| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000016] 16| 12| 0.00|-1.78e+01, 4.57e+00, 8.26e+00| 2.02e+01| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000017] 17| 16| 0.00| 9.03e+00, 7.50e+00, -2.40e+01| 2.67e+01| 1.00e-02| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000018] 18| 13|-1.00| 4.23e+00, 4.34e+00, -1.11e+01| 1.27e+01| 1.06e-01| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] -[00000019] 19| -14| 0.00| 1.23e+01, 1.05e+01, -3.11e+01| 3.50e+01| 0.00e+00| 1 | 1.19e+00, 1.04e+00,-3.09e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-4.05e+01, 1.14e+01, 1.74e+01| 4.56e+01| 1.00e-02| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| -13| 1.00|-1.55e+01, 4.95e+00, 7.03e+00| 1.77e+01| 1.06e-01| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000016] 16| 14| 0.00|-2.69e+00, 7.63e-01, 1.52e+00| 3.18e+00| 0.00e+00| 1 |-2.44e+00, 7.13e-01, 1.08e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000017] 17| 16| 0.00| 4.76e+00, 3.82e+00, -1.06e+01| 1.22e+01| 1.00e-02| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000018] 18| -213|-1.00| 2.08e+01, 1.86e+01, -5.56e+01| 6.22e+01| 4.32e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 19, 20 ] +[00000019] 19| -211|-1.00| 6.16e+00, 5.45e+00, -1.67e+01| 1.86e+01| 1.40e-01| 1 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| 111| 0.00| 1.47e+01, 1.31e+01, -3.89e+01| 4.36e+01| 1.35e-01| 2 | 5.75e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 21, 22 ] +[00000021] 21| 22| 0.00| 1.16e+01, 1.04e+01, -3.10e+01| 3.47e+01| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 22| 0.00| 3.04e+00, 2.70e+00, -7.93e+00| 8.91e+00| 0.00e+00| 1 | 5.76e-01, 5.03e-01,-1.49e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== ==================================================== WHIZARD StdHep Reader : opened file : tauola_2_p2.ev4.hep ====== File Header =========== total blocks: [...] version: 2.01 title: WHIZARD [version] comment: No comment date: [...] closing date: [...] expected events: 1 events: 3 firstTable: -1 dimTable: 100 nNTuples: 0 nBlocks: 8 block names: : Standard HEP COMMON block, see STDHEP Product : Standard HEP COMMON block with multiple interaction, see STDHEP Product : Stdhep begin run record, see STDHEP Product : Stdhep end run record, see STDHEP Product : Standard HEP COMMON block with Les Houches, see STDHEP Product : Standard HEP COMMON block with Les Houches and multiple interaction : Les Houches HEPEUP common block : Les Houches HEPRUP common block ============================= Process ID = 1 Weight = 1 Scale = 213.723 aQED = -1 aQCD = 0.1178 Event #0 [ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] [00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.23e+02| 1.23e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] [00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] [00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 8.93e+01| 8.93e+01| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 6 ] [00000004] 4| -24|-1.00| 3.75e+01, 5.46e+01, 3.32e+00| 1.04e+02| 8.04e+01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 7, 8 ] [00000005] 5| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 12, 14 ] [00000006] 6| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 11, 11 ] [00000007] 7| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 9, 9 ] [00000008] 8| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 10, 10 ] [00000009] 9| 15|-1.00| 6.15e+01, 4.99e+01, -2.39e+00| 7.92e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 15, 16 ] [00000010] 10| -16| 0.00|-2.39e+01, 4.77e+00, 5.71e+00| 2.51e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000011] 11| 14| 0.00|-1.64e+00, 1.42e+01, 1.17e+01| 1.85e+01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000012] 12| 22| 0.00|-1.24e-03,-1.04e-03, -1.35e-03| 2.11e-03| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000013] 13| -13| 1.00|-3.59e+01,-6.89e+01, -5.37e+01| 9.44e+01| 1.06e-01| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000014] 14| 22| 0.00|-9.16e-03,-1.55e-02, -1.37e-02| 2.27e-02| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000015] 15| 16| 0.00| 5.99e+01, 4.83e+01, -2.16e+00| 7.70e+01| 1.00e-02| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] [00000016] 16| -211|-1.00| 1.60e+00, 1.56e+00, -2.26e-01| 2.25e+00| 1.40e-01| 1 | 3.40e+00, 2.76e+00,-1.32e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] converted 1 events - written to stdout ==================================================== Index: trunk/share/tests/functional_tests/ref-output-ext/tauola_3.ref =================================================================== --- trunk/share/tests/functional_tests/ref-output-ext/tauola_3.ref (revision 0) +++ trunk/share/tests/functional_tests/ref-output-ext/tauola_3.ref (revision 8407) @@ -0,0 +1,171 @@ +?openmp_logging = false +?vis_history = false +?integration_timer = false +?pacify = true +| Process library 'tauola_3_lib': recorded process 'tauola_3' +| Process library 'tauola_3_lib': compiling ... +| Process library 'tauola_3_lib': writing makefile +| Process library 'tauola_3_lib': removing old files +| Process library 'tauola_3_lib': writing driver +| Process library 'tauola_3_lib': creating source code +| Process library 'tauola_3_lib': compiling sources +| Process library 'tauola_3_lib': linking +| Process library 'tauola_3_lib': loading +| Process library 'tauola_3_lib': ... success. +openmp_num_threads = 1 +seed = 0 +?ps_fsr_active = true +?hadronization_active = true +$shower_method = "PYTHIA6" +?ps_taudec_active = true +| Particle tau- declared as polarized +| Particle tau+ declared as polarized +| Particle W+ declared as polarized +| Particle W- declared as polarized +| Particle Z declared as polarized +?polarized_events = true +sqrts = 2.50000E+02 +$beam_events_file = "uniform_spread_2.5%.dat" +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 0 +| Initializing integration for process tauola_3: +| Beam structure: e-, e+ => beam_events => isr +| polarization (beam 1): +| @(-1: -1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization (beam 2): +| @(+1: +1: ( 1.000000000000E+00, 0.000000000000E+00)) +| polarization degree = 1.0000000, 1.0000000 +| Beam data (collision): +| e- (mass = 5.1099700E-04 GeV) polarized +| e+ (mass = 5.1099700E-04 GeV) polarized +| sqrts = 2.500000000000E+02 GeV +| Phase space: generating configuration ... +| Phase space: ... success. +| Phase space: writing configuration file 'tauola_3.i1.phs' +| ------------------------------------------------------------------------ +| Process [scattering]: 'tauola_3' +| Library name = 'tauola_3_lib' +| Process index = 1 +| Process components: +| 1: 'tauola_3_i1': e-, e+ => tau-, tau+, tau-, tau+ [omega] +| ------------------------------------------------------------------------ +| Phase space: 120 channels, 8 dimensions +| Phase space: found 120 channels, collected in 12 groves. +| Phase space: Using 768 equivalences between channels. +| Phase space: wood +| Beam structure: beam_events => isr, none => none, isr +| Beam structure: 2 channels, 2 dimensions +Warning: No cuts have been defined. +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Starting integration for process 'tauola_3' +| Integrate: iterations = 1:1200:"gw" +| Integrator: 12 chains, 120 channels, 10 dimensions +| Integrator: Using VAMP channel equivalences +| Integrator: 1200 initial calls, 20 bins, stratified = T +| Integrator: VAMP +|=============================================================================| +| It Calls Integral[fb] Error[fb] Err[%] Acc Eff[%] Chi2 N[It] | +|=============================================================================| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|-----------------------------------------------------------------------------| + 1 1200 1.214E+01 8.61E-01 7.09 2.46 23.0 +|=============================================================================| +| Name clash for global logfile and process log: +| Renaming log file from tauola_3.log +| to tauola_3.var.log . +| Beam events: closed file 'uniform_spread_2.5%.dat' +?write_raw = false +n_events = 1 +$sample = "tauola_3_p1" +| Starting simulation for process 'tauola_3' +| Beam events: reading from file 'uniform_spread_2.5%.dat' +| Simulate: using integration grids from file 'tauola_3.m1.vg' +| Simulate: activating parton shower +| Shower: Using PYTHIA6 shower +| Simulate: activating hadronization +| Hadronization: Using PYTHIA6 interface for hadronization and decays +| RNG: Initializing TAO random-number generator +| RNG: Setting seed for random-number generator to 1 +| Simulation: requested number of events = 1 +| corr. to luminosity [fb-1] = 8.2349E-02 +| Events: writing to STDHEP file 'tauola_3_p1.ev4.hep' +| Events: generating 1 unweighted, polarized events ... +| Events: event normalization mode '1' +| ... event sample complete. +| Events: actual unweighting efficiency = 100.00 % +| Events: closing STDHEP file 'tauola_3_p1.ev4.hep' +| Beam events: closed file 'uniform_spread_2.5%.dat' +| There were no errors and 1 warning(s). +| WHIZARD run finished. +|=============================================================================| +STDHEP EV4 version: +==================================================== + WHIZARD StdHep Reader : + opened file : tauola_3_p1.ev4.hep +====== File Header =========== + total blocks: [...] + version: 2.01 + title: WHIZARD [version] + comment: No comment + date: [...] + closing date: [...] + expected events: 1 + events: 3 + firstTable: -1 + dimTable: 100 + nNTuples: 0 + nBlocks: 8 + block names: + : Standard HEP COMMON block, see STDHEP Product + : Standard HEP COMMON block with multiple interaction, see STDHEP Product + : Stdhep begin run record, see STDHEP Product + : Stdhep end run record, see STDHEP Product + : Standard HEP COMMON block with Les Houches, see STDHEP Product + : Standard HEP COMMON block with Les Houches and multiple interaction + : Les Houches HEPEUP common block + : Les Houches HEPRUP common block +============================= +Process ID = 1 Weight = 1 Scale = 253.512 aQED = -1 aQCD = 0.1178 + Event #0 +[ id ]index| PDG |q(el)| px, py, pz | energy | mass |sta| vertex x, y , z | spin | colorflow | [daughters] +[00000000] 0| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 2, 2 ] +[00000001] 1| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 3, 3 ] +[00000002] 2| 11|-1.00| 0.00e+00, 0.00e+00, 1.28e+02| 1.28e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000003] 3| -11| 1.00| 0.00e+00, 0.00e+00, -1.25e+02| 1.25e+02| 5.11e-04| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 4, 7 ] +[00000004] 4| 15|-1.00| 6.34e+01, 3.25e+01, 7.59e+01| 1.04e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 10, 11 ] +[00000005] 5| -15| 1.00|-2.31e+01,-2.07e+01, 2.58e+01| 4.04e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 8, 8 ] +[00000006] 6| 15|-1.00|-2.24e+00, 1.34e+00, -2.19e+01| 2.21e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 12, 13 ] +[00000007] 7| -15| 1.00|-3.80e+01,-1.32e+01, -7.71e+01| 8.70e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 9, 9 ] +[00000008] 8| -15| 1.00|-2.30e+01,-2.05e+01, 2.56e+01| 4.01e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 14, 15 ] +[00000009] 9| -15| 1.00|-3.78e+01,-1.31e+01, -7.65e+01| 8.64e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 1.00e+00| (0, 0) | [ 19, 21 ] +[00000010] 10| 15|-1.00| 6.40e+01, 3.07e+01, 7.44e+01| 1.03e+02| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 22, 23 ] +[00000011] 11| 22| 0.00|-1.01e+00, 1.58e+00, 9.20e-01| 2.08e+00| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000012] 12| 15|-1.00|-1.61e+00, 1.05e+00, -2.11e+01| 2.12e+01| 1.78e+00| 2 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00,-1.00e+00| (0, 0) | [ 26, 27 ] +[00000013] 13| 22| 0.00|-6.16e-01, 2.81e-01, -6.41e-01| 9.33e-01| 0.00e+00| 1 | 0.00e+00, 0.00e+00, 0.00e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000014] 14| -16| 0.00|-6.61e+00,-5.29e+00, 7.06e+00| 1.10e+01| 1.00e-02| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000015] 15| 20213| 1.00|-1.64e+01,-1.52e+01, 1.85e+01| 2.91e+01| 1.24e+00| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 16, 18 ] +[00000016] 16| 111| 0.00|-2.18e+00,-2.05e+00, 2.19e+00| 3.71e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 30, 31 ] +[00000017] 17| 111| 0.00|-2.38e+00,-2.64e+00, 2.92e+00| 4.61e+00| 1.35e-01| 2 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 32, 33 ] +[00000018] 18| 211| 1.00|-1.18e+01,-1.05e+01, 1.34e+01| 2.07e+01| 1.40e-01| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000019] 19| -16| 0.00|-2.93e-01,-1.68e-01, -4.27e-01| 5.45e-01| 1.00e-02| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000020] 20| -11| 1.00|-3.69e+01,-1.26e+01, -7.46e+01| 8.41e+01| 5.11e-04| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000021] 21| 12| 0.00|-6.20e-01,-3.04e-01, -1.55e+00| 1.70e+00| 0.00e+00| 1 |-5.45e-01,-1.89e-01,-1.10e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000022] 22| 16| 0.00| 4.39e+01, 2.06e+01, 5.03e+01| 6.99e+01| 1.00e-02| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000023] 23| -213|-1.00| 2.00e+01, 1.01e+01, 2.41e+01| 3.29e+01| 6.99e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 24, 25 ] +[00000024] 24| -211|-1.00| 9.71e+00, 4.62e+00, 1.12e+01| 1.56e+01| 1.40e-01| 1 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000025] 25| 111| 0.00| 1.03e+01, 5.51e+00, 1.28e+01| 1.74e+01| 1.35e-01| 2 | 6.43e-01, 3.08e-01, 7.48e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 34, 35 ] +[00000026] 26| 16| 0.00|-1.60e-01,-3.89e-01, -2.96e+00| 2.99e+00| 1.00e-02| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000027] 27| -213|-1.00|-1.45e+00, 1.44e+00, -1.81e+01| 1.82e+01| 7.93e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 28, 29 ] +[00000028] 28| -211|-1.00|-5.95e-01, 7.93e-01, -5.89e+00| 5.98e+00| 1.40e-01| 1 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000029] 29| 111| 0.00|-8.50e-01, 6.48e-01, -1.22e+01| 1.23e+01| 1.35e-01| 2 |-1.09e-03, 7.13e-04,-1.43e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 36, 37 ] +[00000030] 30| 22| 0.00|-2.06e+00,-1.97e+00, 2.05e+00| 3.51e+00| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000031] 31| 22| 0.00|-1.20e-01,-8.84e-02, 1.39e-01| 2.04e-01| 0.00e+00| 1 |-9.22e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000032] 32| 22| 0.00|-1.85e+00,-2.01e+00, 2.18e+00| 3.49e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000033] 33| 22| 0.00|-5.33e-01,-6.31e-01, 7.44e-01| 1.11e+00| 0.00e+00| 1 |-9.21e-01,-8.22e-01, 1.03e+00| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000034] 34| 22| 0.00| 1.04e+00, 5.21e-01, 1.31e+00| 1.75e+00| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000035] 35| 22| 0.00| 9.29e+00, 4.99e+00, 1.15e+01| 1.56e+01| 0.00e+00| 1 | 6.45e-01, 3.10e-01, 7.51e-01| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000036] 36| 22| 0.00|-6.26e-02, 8.01e-02, -8.59e-01| 8.65e-01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] +[00000037] 37| 22| 0.00|-7.87e-01, 5.67e-01, -1.13e+01| 1.14e+01| 0.00e+00| 1 |-1.14e-03, 7.51e-04,-1.50e-02| 0.00e+00, 0.00e+00, 0.00e+00| (0, 0) | [ 0, 0 ] + converted 1 events - written to stdout +==================================================== + Index: trunk/tauola/tauola.f =================================================================== --- trunk/tauola/tauola.f (revision 8406) +++ trunk/tauola/tauola.f (revision 8407) @@ -1,5323 +1,5325 @@ SUBROUTINE JAKER(JAK) IMPLICIT double precision (A-H,O-Z) C ********************* C C ********************************************************************** C * C *********TAUOLA LIBRARY: VERSION 2.7 ******** * C **************DECEMBER 1993****************** * C ** AUTHORS: S.JADACH, Z.WAS ***** * C ** R. DECKER, M. JEZABEK, J.H.KUEHN, ***** * C ********AVAILABLE FROM: WASM AT CERNVM ****** * C *******PUBLISHED IN COMP. PHYS. COMM.******** * C *** PREPRINT CERN-TH-5856 SEPTEMBER 1990 **** * C *** PREPRINT CERN-TH-6195 OCTOBER 1991 **** * C *** PREPRINT CERN-TH-6793 NOVEMBER 1992 **** * C ********************************************************************** C C ---------------------------------------------------------------------- c SUBROUTINE JAKER, C CHOOSES DECAY MODE ACCORDING TO LIST OF BRANCHING RATIOS C JAK=1 ELECTRON MODE C JAK=2 MUON MODE C JAK=3 PION MODE C JAK=4 RHO MODE C JAK=5 A1 MODE C JAK=6 K MODE C JAK=7 K* MODE C JAK=8-13 npi modes C JAK=14-19 KKpi & Kpipi modes C JAK=20-21 eta pi pi; gamma pi pi modes C C called by : DEXAY C ---------------------------------------------------------------------- COMMON / TAUBRA / GAMPRT(30),JLIST(30),NCHAN logical condition double precision CUMUL(30),RRR(1) C IF(NCHAN.LE.0.OR.NCHAN.GT.30) GOTO 902 CALL RANMAR(RRR,1) SUM=0 DO 20 I=1,NCHAN SUM=SUM+GAMPRT(I) 20 CUMUL(I)=SUM DO 25 I=NCHAN,1,-1 if(cumul(nchan) > 0) then condition = RRR(1).LT.CUMUL(I)/CUMUL(NCHAN) else condition = .true. end if IF(condition) JI=I 25 CONTINUE JAK=JLIST(JI) RETURN 902 PRINT 9020 9020 FORMAT(' ----- JAKER: WRONG NCHAN') STOP END SUBROUTINE DEKAY(KTO,HX) C *********************** C THIS DEKAY IS IN SPIRIT OF THE 'DECAY' WHICH C WAS INCLUDED IN KORAL-B PROGRAM, COMP. PHYS. COMMUN. C VOL. 36 (1985) 191, SEE COMMENTS ON GENERAL PHILOSOPHY THERE. C KTO=0 INITIALISATION (OBLIGATORY) C KTO=1,11 DENOTES TAU+ AND KTO=2,12 TAU- C DEKAY(1,H) AND DEKAY(2,H) IS CALLED INTERNALLY BY MC GENERATOR. C H DENOTES THE POLARIMETRIC VECTOR, USED BY THE HOST PROGRAM FOR C CALCULATION OF THE SPIN WEIGHT. C USER MAY OPTIONALLY CALL DEKAY(11,H) DEKAY(12,H) IN ORDER C TO TRANSFORM DECAY PRODUCTS TO CMS AND WRITE LUND RECORD IN /LUJETS/. C KTO=100, PRINT FINAL REPORT (OPTIONAL). C DECAY MODES: C JAK=1 ELECTRON DECAY C JAK=2 MU DECAY C JAK=3 PI DECAY C JAK=4 RHO DECAY C JAK=5 A1 DECAY C JAK=6 K DECAY C JAK=7 K* DECAY C JAK= 8-13 npi modes C JAK=14-19 KKpi & Kpipi modes C JAK=20-21 eta pi pi; gamma pi pi modes C JAK=0 INCLUSIVE: JAK=1-21 IMPLICIT double precision (A-H,O-Z) double precision H(4) double precision HX(4) COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / IDFC / IDFF COMMON /TAUPOS/ NP1,NP2 COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 COMMON / INOUT / INUT,IOUT double precision PDUM1(4),PDUM2(4),PDUM3(4), * PDUM4(4),PDUM5(4),HDUM(4),PDUM(4) double precision PDUMX(4,9) DATA IWARM/0/ save iwarn, nevtot, nev1, nev2 save h, hk do 51 i=1, 4 H(i)=0.0 51 continue KTOM=KTO IDF = IDFF IF(KTO.EQ.-1) THEN C ================== C INITIALISATION OR REINITIALISATION C first or second tau positions in HEPEVT as in KORALB/Z NP1=3 NP2=4 KTOM=1 IF (IWARM.EQ.1) X=5/(IWARM-1) IWARM=1 WRITE(IOUT,7001) JAK1,JAK2 NEVTOT=0 NEV1=0 NEV2=0 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN CALL DADMEL(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DADMMU(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DADMPI(-1,IDUM,PDUM,PDUM1,PDUM2) CALL DADMRO(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4) CALL DADMAA(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM) CALL DADMKK(-1,IDUM,PDUM,PDUM1,PDUM2) CALL DADMKS(-1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM) CALL DADNEW(-1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM) ENDIF DO 21 I=1,30 NEVDEC(I)=0 GAMPMC(I)=0 21 GAMPER(I)=0 ELSEIF(KTO.EQ.1) THEN C ===================== C DECAY OF TAU+ IN THE TAU REST FRAME NEVTOT=NEVTOT+1 IF(IWARM.EQ.0) GOTO 902 ISGN= IDF/IABS(IDF) CALL DEKAY1(0,H,ISGN) ELSEIF(KTO.EQ.2) THEN C ================================= C DECAY OF TAU- IN THE TAU REST FRAME NEVTOT=NEVTOT+1 IF(IWARM.EQ.0) GOTO 902 ISGN=-IDF/IABS(IDF) CALL DEKAY2(0,H,ISGN) ELSEIF(KTO.EQ.11) THEN C ====================== C REST OF DECAY PROCEDURE FOR ACCEPTED TAU+ DECAY NEV1=NEV1+1 ISGN= IDF/IABS(IDF) CALL DEKAY1(1,H,ISGN) ELSEIF(KTO.EQ.12) THEN C ====================== C REST OF DECAY PROCEDURE FOR ACCEPTED TAU- DECAY NEV2=NEV2+1 ISGN=-IDF/IABS(IDF) CALL DEKAY2(1,H,ISGN) ELSEIF(KTO.EQ.100) THEN C ======================= IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN CALL DADMEL( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DADMMU( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DADMPI( 1,IDUM,PDUM,PDUM1,PDUM2) CALL DADMRO( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4) CALL DADMAA( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM) CALL DADMKK( 1,IDUM,PDUM,PDUM1,PDUM2) CALL DADMKS( 1,IDUM,HDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM) CALL DADNEW( 1,IDUM,HDUM,PDUM1,PDUM2,PDUMX,JDUM) WRITE(IOUT,7010) NEV1,NEV2,NEVTOT WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7) WRITE(IOUT,7012) $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE) WRITE(IOUT,7013) ENDIF ELSE C ==== GOTO 910 ENDIF C ===== DO 78 K=1,4 78 HX(K)=H(K) RETURN 7001 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*, $ /,' *', 25X,'*DEC 1993; ALEPH fixes introd. dec 98 *',9X,1H*, $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, $ /,' *', 25X,'Physics initialization by ALEPH collab ',9X,1H*, $ /,' *', 25X,'it is suggested to use this version ',9X,1H*, $ /,' *', 25X,' with the help of the collab. advice ',9X,1H*, $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*, $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*, $ /,' *', 25X,'****DEKAY ROUTINE: INITIALIZATION******',9X,1H*, $ /,' *',I20 ,5X,'JAK1 = DECAY MODE TAU+ ',9X,1H*, $ /,' *',I20 ,5X,'JAK2 = DECAY MODE TAU- ',9X,1H*, $ /,1X,15(5H*****)/) 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*, $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*, $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*, $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*, $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*, $ /,' *', 25X,'*******CERN TH-6793 NOVEMBER 1992*****',9X,1H*, $ /,' *', 25X,'*****DEKAY ROUTINE: FINAL REPORT*******',9X,1H*, $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H*, $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H*, $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H*, $ /,' *',' NOEVTS ', $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*) 7011 FORMAT(1X,'*' $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H* $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H* $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H* $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H* $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H* $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H* $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*) 7012 FORMAT(1X,'*' $ ,I10,2F12.7,A31 ,8X,1H*) 7013 FORMAT(1X,'*' $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H* $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H* $ /,1X,15(5H*****)/) 902 PRINT 9020 9020 FORMAT(' ----- DEKAY: LACK OF INITIALISATION') STOP 910 PRINT 9100 9100 FORMAT(' ----- DEKAY: WRONG VALUE OF KTO ') STOP END SUBROUTINE DEKAY1(IMOD,HH,ISGN) C ******************************* C THIS ROUTINE SIMULATES TAU+ DECAY IMPLICIT double precision (A-H,O-Z) COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / DECP4 / PP1(4),PP2(4),KFF1,KFF2 double precision PP1 ,PP2 INTEGER KFF1,KFF2 double precision HH(4) double precision HV(4),PNU(4),PPI(4) double precision PWB(4),PMU(4),PNM(4) double precision PRHO(4),PIC(4),PIZ(4) double precision PAA(4),PIM1(4),PIM2(4),PIPL(4) double precision PKK(4),PKS(4) double precision PNPI(4,9) double precision PHOT(4) double precision PDUM(4) DATA NEV,NPRIN/0,10/ save nev, nprin, kto save hv, pnu, ppi, pwb, pmu, pnm save prho, pic, piz, paa, pim1, pim2, pipl save pkk, pks, pnpi, phot, pdum save jak, imd KTO=1 IF(JAK1.EQ.-1) RETURN IMD=IMOD IF(IMD.EQ.0) THEN C ================= JAK=JAK1 IF(JAK1.EQ.0) CALL JAKER(JAK) IF(JAK.EQ.1) THEN CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) ELSEIF(JAK.EQ.2) THEN CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) ELSEIF(JAK.EQ.3) THEN CALL DADMPI(0, ISGN,HV,PPI,PNU) ELSEIF(JAK.EQ.4) THEN CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ) ELSEIF(JAK.EQ.5) THEN CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) ELSEIF(JAK.EQ.6) THEN CALL DADMKK(0, ISGN,HV,PKK,PNU) ELSEIF(JAK.EQ.7) THEN CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST) ELSE CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7) ENDIF DO 33 I=1,3 33 HH(I)=HV(I) HH(4)=1.0 ELSEIF(IMD.EQ.1) THEN C ===================== NEV=NEV+1 IF (JAK.LT.31) THEN NEVDEC(JAK)=NEVDEC(JAK)+1 ENDIF DO 34 I=1,4 34 PDUM(I)=.0 IF(JAK.EQ.1) THEN CALL DWLUEL(1,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTOM,PHOT) DO 10 I=1,4 10 PP1(I)=PMU(I) ELSEIF(JAK.EQ.2) THEN CALL DWLUMU(1,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTOM,PHOT) DO 20 I=1,4 20 PP1(I)=PMU(I) ELSEIF(JAK.EQ.3) THEN CALL DWLUPI(1,ISGN,PPI,PNU) DO 30 I=1,4 30 PP1(I)=PPI(I) ELSEIF(JAK.EQ.4) THEN CALL DWLURO(1,ISGN,PNU,PRHO,PIC,PIZ) DO 40 I=1,4 40 PP1(I)=PRHO(I) ELSEIF(JAK.EQ.5) THEN CALL DWLUAA(1,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) DO 50 I=1,4 50 PP1(I)=PAA(I) ELSEIF(JAK.EQ.6) THEN CALL DWLUKK(1,ISGN,PKK,PNU) DO 60 I=1,4 60 PP1(I)=PKK(I) ELSEIF(JAK.EQ.7) THEN CALL DWLUKS(1,ISGN,PNU,PKS,PKK,PPI,JKST) DO 70 I=1,4 70 PP1(I)=PKS(I) ELSE CAM MULTIPION DECAY CALL DWLNEW(1,ISGN,PNU,PWB,PNPI,JAK) DO 80 I=1,4 80 PP1(I)=PWB(I) ENDIF ENDIF C ===== END SUBROUTINE DEKAY2(IMOD,HH,ISGN) C ******************************* C THIS ROUTINE SIMULATES TAU- DECAY IMPLICIT double precision (A-H,O-Z) COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / DECP4 / PP1(4),PP2(4),KFF1,KFF2 double precision PP1 ,PP2 INTEGER KFF1,KFF2 double precision HH(4) double precision HV(4),PNU(4),PPI(4) double precision PWB(4),PMU(4),PNM(4) double precision PRHO(4),PIC(4),PIZ(4) double precision PAA(4),PIM1(4),PIM2(4),PIPL(4) double precision PKK(4),PKS(4) double precision PNPI(4,9) double precision PHOT(4) double precision PDUM(4) DATA NEV,NPRIN/0,10/ save nev, nprin, kto save hhm hv, pnu, ppi, pwb, pmu, pnm save prho, pic, piz, paa, pim1, pim2, pipl save pkk, pks, pnpi, phot, pdum save jak, imd KTO=2 IF(JAK2.EQ.-1) RETURN IMD=IMOD IF(IMD.EQ.0) THEN C ================= JAK=JAK2 IF(JAK2.EQ.0) CALL JAKER(JAK) IF(JAK.EQ.1) THEN CALL DADMEL(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) ELSEIF(JAK.EQ.2) THEN CALL DADMMU(0, ISGN,HV,PNU,PWB,PMU,PNM,PHOT) ELSEIF(JAK.EQ.3) THEN CALL DADMPI(0, ISGN,HV,PPI,PNU) ELSEIF(JAK.EQ.4) THEN CALL DADMRO(0, ISGN,HV,PNU,PRHO,PIC,PIZ) ELSEIF(JAK.EQ.5) THEN CALL DADMAA(0, ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) ELSEIF(JAK.EQ.6) THEN CALL DADMKK(0, ISGN,HV,PKK,PNU) ELSEIF(JAK.EQ.7) THEN CALL DADMKS(0, ISGN,HV,PNU,PKS ,PKK,PPI,JKST) ELSE CALL DADNEW(0, ISGN,HV,PNU,PWB,PNPI,JAK-7) ENDIF DO 33 I=1,3 33 HH(I)=HV(I) HH(4)=1.0 ELSEIF(IMD.EQ.1) THEN C ===================== NEV=NEV+1 IF (JAK.LT.31) THEN NEVDEC(JAK)=NEVDEC(JAK)+1 ENDIF DO 34 I=1,4 34 PDUM(I)=.0 IF(JAK.EQ.1) THEN CALL DWLUEL(2,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTOM,PHOT) DO 10 I=1,4 10 PP2(I)=PMU(I) ELSEIF(JAK.EQ.2) THEN CALL DWLUMU(2,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTOM,PHOT) DO 20 I=1,4 20 PP2(I)=PMU(I) ELSEIF(JAK.EQ.3) THEN CALL DWLUPI(2,ISGN,PPI,PNU) DO 30 I=1,4 30 PP2(I)=PPI(I) ELSEIF(JAK.EQ.4) THEN CALL DWLURO(2,ISGN,PNU,PRHO,PIC,PIZ) DO 40 I=1,4 40 PP2(I)=PRHO(I) ELSEIF(JAK.EQ.5) THEN CALL DWLUAA(2,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) DO 50 I=1,4 50 PP2(I)=PAA(I) ELSEIF(JAK.EQ.6) THEN CALL DWLUKK(2,ISGN,PKK,PNU) DO 60 I=1,4 60 PP1(I)=PKK(I) ELSEIF(JAK.EQ.7) THEN CALL DWLUKS(2,ISGN,PNU,PKS,PKK,PPI,JKST) DO 70 I=1,4 70 PP1(I)=PKS(I) ELSE CAM MULTIPION DECAY CALL DWLNEW(2,ISGN,PNU,PWB,PNPI,JAK) DO 80 I=1,4 80 PP1(I)=PWB(I) ENDIF C ENDIF C ===== END SUBROUTINE DEXAY(KTO,POL) C ---------------------------------------------------------------------- C THIS 'DEXAY' IS A ROUTINE WHICH GENERATES DECAY OF THE SINGLE C POLARIZED TAU, POL IS A POLARIZATION VECTOR (NOT A POLARIMETER C VECTOR AS IN DEKAY) OF THE TAU AND IT IS AN INPUT PARAMETER. C KTO=0 INITIALISATION (OBLIGATORY) C KTO=1 DENOTES TAU+ AND KTO=2 TAU- C DEXAY(1,POL) AND DEXAY(2,POL) ARE CALLED INTERNALLY BY MC GENERATOR. C DECAY PRODUCTS ARE TRANSFORMED READILY C TO CMS AND WRITEN IN THE LUND RECORD IN /LUJETS/ C KTO=100, PRINT FINAL REPORT (OPTIONAL). C C called by : KORALZ C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / IDFC / IDFF COMMON /TAUPOS/ NP1,NP2 PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 COMMON / INOUT / INUT,IOUT double precision POL(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) double precision PDUM(4) double precision PDUMI(4,9) DATA IWARM/0/ save iwarn save pdum1, pdum2, pdum3, pdum4, pdum5 save pdum, pdumi save nevtot, nev1, nev2 KTOM=KTO C IF(KTO.EQ.-1) THEN C ================== C INITIALISATION OR REINITIALISATION C first or second tau positions in HEPEVT as in KORALB/Z NP1=3 NP2=4 IWARM=1 WRITE(IOUT, 7001) JAK1,JAK2 NEVTOT=0 NEV1=0 NEV2=0 IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN CALL DEXEL(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DEXMU(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DEXPI(-1,IDUM,PDUM,PDUM1,PDUM2) CALL DEXRO(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4) CALL DEXAA(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JDUM) CALL DEXKK(-1,IDUM,PDUM,PDUM1,PDUM2) CALL DEXKS(-1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,JDUM) CALL DEXNEW(-1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,JDUM) ENDIF DO 21 I=1,30 NEVDEC(I)=0 GAMPMC(I)=0 21 GAMPER(I)=0 ELSEIF(KTO.EQ.1) THEN C ===================== C DECAY OF TAU+ IN THE TAU REST FRAME NEVTOT=NEVTOT+1 NEV1=NEV1+1 IF(IWARM.EQ.0) GOTO 902 ISGN=IDFF/IABS(IDFF) CAM CALL DEXAY1(POL,ISGN) CALL DEXAY1(KTO,JAK1,JAKP,POL,ISGN) ELSEIF(KTO.EQ.2) THEN C ================================= C DECAY OF TAU- IN THE TAU REST FRAME NEVTOT=NEVTOT+1 NEV2=NEV2+1 IF(IWARM.EQ.0) GOTO 902 ISGN=-IDFF/IABS(IDFF) CAM CALL DEXAY2(POL,ISGN) CALL DEXAY1(KTO,JAK2,JAKM,POL,ISGN) ELSEIF(KTO.EQ.100) THEN C ======================= IF(JAK1.NE.-1.OR.JAK2.NE.-1) THEN CALL DEXEL( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DEXMU( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) CALL DEXPI( 1,IDUM,PDUM,PDUM1,PDUM2) CALL DEXRO( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4) CALL DEXAA( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,IDUM) CALL DEXKK( 1,IDUM,PDUM,PDUM1,PDUM2) CALL DEXKS( 1,IDUM,PDUM,PDUM1,PDUM2,PDUM3,PDUM4,IDUM) CALL DEXNEW( 1,IDUM,PDUM,PDUM1,PDUM2,PDUMI,IDUM) WRITE(IOUT,7010) NEV1,NEV2,NEVTOT WRITE(IOUT,7011) (NEVDEC(I),GAMPMC(I),GAMPER(I),I= 1,7) WRITE(IOUT,7012) $ (NEVDEC(I),GAMPMC(I),GAMPER(I),NAMES(I-7),I=8,7+NMODE) WRITE(IOUT,7013) ENDIF ELSE GOTO 910 ENDIF RETURN 7001 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*, $ /,' *', 25X,'*DEC 1993; ALEPH fixes introd. dec 98 *',9X,1H*, $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, $ /,' *', 25X,'Physics initialization by ALEPH collab ',9X,1H*, $ /,' *', 25X,'it is suggested to use this version ',9X,1H*, $ /,' *', 25X,' with the help of the collab. advice ',9X,1H*, $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*, $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*, $ /,' *', 25X,'**5 or more pi dec.: precision limited ',9X,1H*, $ /,' *', 25X,'******DEXAY ROUTINE: INITIALIZATION****',9X,1H* $ /,' *',I20 ,5X,'JAK1 = DECAY MODE FERMION1 (TAU+) ',9X,1H* $ /,' *',I20 ,5X,'JAK2 = DECAY MODE FERMION2 (TAU-) ',9X,1H* $ /,1X,15(5H*****)/) CHBU format 7010 had more than 19 continuation lines CHBU split into two 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'*****TAUOLA LIBRARY: VERSION 2.7 ******',9X,1H*, $ /,' *', 25X,'***********DECEMBER 1993***************',9X,1H*, $ /,' *', 25X,'**AUTHORS: S.JADACH, Z.WAS*************',9X,1H*, $ /,' *', 25X,'**R. DECKER, M. JEZABEK, J.H.KUEHN*****',9X,1H*, $ /,' *', 25X,'**AVAILABLE FROM: WASM AT CERNVM ******',9X,1H*, $ /,' *', 25X,'***** PUBLISHED IN COMP. PHYS. COMM.***',9X,1H*, $ /,' *', 25X,'*******CERN-TH-5856 SEPTEMBER 1990*****',9X,1H*, $ /,' *', 25X,'*******CERN-TH-6195 SEPTEMBER 1991*****',9X,1H*, $ /,' *', 25X,'*******CERN-TH-6793 NOVEMBER 1992*****',9X,1H*, $ /,' *', 25X,'******DEXAY ROUTINE: FINAL REPORT******',9X,1H* $ /,' *',I20 ,5X,'NEV1 = NO. OF TAU+ DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEV2 = NO. OF TAU- DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVTOT = SUM ',9X,1H* $ /,' *',' NOEVTS ', $ ' PART.WIDTH ERROR ROUTINE DECAY MODE ',9X,1H*) 7011 FORMAT(1X,'*' $ ,I10,2F12.7 ,' DADMEL ELECTRON ',9X,1H* $ /,' *',I10,2F12.7 ,' DADMMU MUON ',9X,1H* $ /,' *',I10,2F12.7 ,' DADMPI PION ',9X,1H* $ /,' *',I10,2F12.7, ' DADMRO RHO (->2PI) ',9X,1H* $ /,' *',I10,2F12.7, ' DADMAA A1 (->3PI) ',9X,1H* $ /,' *',I10,2F12.7, ' DADMKK KAON ',9X,1H* $ /,' *',I10,2F12.7, ' DADMKS K* ',9X,1H*) 7012 FORMAT(1X,'*' $ ,I10,2F12.7,A31 ,8X,1H*) 7013 FORMAT(1X,'*' $ ,20X,'THE ERROR IS RELATIVE AND PART.WIDTH ',10X,1H* $ /,' *',20X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',10X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXAY: LACK OF INITIALISATION') STOP 910 WRITE(IOUT, 9100) 9100 FORMAT(' ----- DEXAY: WRONG VALUE OF KTO ') STOP END SUBROUTINE DEXAY1(KTO,JAKIN,JAK,POL,ISGN) C --------------------------------------------------------------------- C THIS ROUTINE SIMULATES TAU+- DECAY C C called by : DEXAY C --------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision POL(4),POLAR(4) double precision PNU(4),PPI(4) double precision PRHO(4),PIC(4),PIZ(4) double precision PWB(4),PMU(4),PNM(4) double precision PAA(4),PIM1(4),PIM2(4),PIPL(4) double precision PKK(4),PKS(4) double precision PNPI(4,9) double precision PHOT(4) double precision PDUM(4) C save polar, pnu, ppi, prho, pic, piz, pwb, pmu, pnm save paa, pim1, pim2, pipl, pkk, pks, pnpi, phot, pdum IF(JAKIN.EQ.-1) RETURN DO 33 I=1,3 33 POLAR(I)=POL(I) POLAR(4)=0. DO 34 I=1,4 34 PDUM(I)=.0 JAK=JAKIN IF(JAK.EQ.0) CALL JAKER(JAK) CAM IF(JAK.EQ.1) THEN CALL DEXEL(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT) CALL DWLUEL(KTO,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTO,PHOT ) ELSEIF(JAK.EQ.2) THEN CALL DEXMU(0, ISGN,POLAR,PNU,PWB,PMU,PNM,PHOT) CALL DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM) CALL DWRPH(KTO,PHOT ) ELSEIF(JAK.EQ.3) THEN CALL DEXPI(0, ISGN,POLAR,PPI,PNU) CALL DWLUPI(KTO,ISGN,PPI,PNU) ELSEIF(JAK.EQ.4) THEN CALL DEXRO(0, ISGN,POLAR,PNU,PRHO,PIC,PIZ) CALL DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ) ELSEIF(JAK.EQ.5) THEN CALL DEXAA(0, ISGN,POLAR,PNU,PAA,PIM1,PIM2,PIPL,JAA) CALL DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) ELSEIF(JAK.EQ.6) THEN CALL DEXKK(0, ISGN,POLAR,PKK,PNU) CALL DWLUKK(KTO,ISGN,PKK,PNU) ELSEIF(JAK.EQ.7) THEN CALL DEXKS(0, ISGN,POLAR,PNU,PKS,PKK,PPI,JKST) CALL DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST) ELSE JNPI=JAK-7 CALL DEXNEW(0, ISGN,POLAR,PNU,PWB,PNPI,JNPI) CALL DWLNEW(KTO,ISGN,PNU,PWB,PNPI,JAK) ENDIF NEVDEC(JAK)=NEVDEC(JAK)+1 END SUBROUTINE DEXEL(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH) C ---------------------------------------------------------------------- C THIS SIMULATES TAU DECAY IN TAU REST FRAME C INTO ELECTRON AND TWO NEUTRINOS C C called by : DEXAY,DEXAY1 C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision POL(4),HV(4),PWB(4),PNU(4),Q1(4), * Q2(4),PH(4),RN(1) DATA IWARM/0/ save iwarn save hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CALL DADMEL( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH) CC CALL HBOOK1(813,'WEIGHT DISTRIBUTION DEXEL $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADMEL( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(813,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ======================= CALL DADMEL( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH) CC CALL HPRINT(813) ENDIF C ===== RETURN 902 PRINT 9020 9020 FORMAT(' ----- DEXEL: LACK OF INITIALISATION') STOP END SUBROUTINE DEXMU(MODE,ISGN,POL,PNU,PWB,Q1,Q2,PH) C ---------------------------------------------------------------------- C THIS SIMULATES TAU DECAY IN ITS REST FRAME C INTO MUON AND TWO NEUTRINOS C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, C PWB W-BOSON C Q1 MUON C Q2 MUON-NEUTRINO C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / INOUT / INUT,IOUT double precision POL(4),HV(4),PWB(4),PNU(4) double precision Q1(4),Q2(4),PH(4),RN(1) DATA IWARM/0/ save iwarn, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CALL DADMMU( -1,ISGN,HV,PNU,PWB,Q1,Q2,PH) CC CALL HBOOK1(814,'WEIGHT DISTRIBUTION DEXMU $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADMMU( 0,ISGN,HV,PNU,PWB,Q1,Q2,PH) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(814,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ======================= CALL DADMMU( 1,ISGN,HV,PNU,PWB,Q1,Q2,PH) CC CALL HPRINT(814) ENDIF C ===== RETURN 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXMU: LACK OF INITIALISATION') STOP END SUBROUTINE DADMEL(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX) C ---------------------------------------------------------------------- C C called by : DEXEL,(DEKAY,DEKAY1) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision PHX(4) double precision HHV(4),HV(4),PWB(4),PNU(4),Q1(4),Q2(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) double precision RRR(3) double precision SWT, SSWT DATA PI /3.141592653589793238462643/ DATA IWARM/0/ save iwarn, nevraw, nevacc, nevovr, swt, sswt, wtmax save hv, pdum1, pdum2, pdum3, pdum4, pdum5 C IF(MODE.EQ.-1) THEN C =================== IWARM=1 NEVRAW=0 NEVACC=0 NEVOVR=0 SWT=0 SSWT=0 WTMAX=1E-20 DO 15 I=1,500 CALL DPHSEL(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 15 CONTINUE CC CALL HBOOK1(803,'WEIGHT DISTRIBUTION DADMEL $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 NEVRAW=NEVRAW+1 CALL DPHSEL(WT,HV,PNU,PWB,Q1,Q2,PHX) CC CALL HFILL(803,WT/WTMAX) SWT=SWT+WT SSWT=SSWT+WT**2 CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 IF(RN*WTMAX.GT.WT) GOTO 300 C ROTATIONS TO BASIC TAU REST FRAME RR2=RRR(2) COSTHE=-1.+2.*RR2 THET=ACOS(COSTHE) RR3=RRR(3) PHI =2*PI*RR3 CALL ROTOR2(THET,PNU,PNU) CALL ROTOR3( PHI,PNU,PNU) CALL ROTOR2(THET,PWB,PWB) CALL ROTOR3( PHI,PWB,PWB) CALL ROTOR2(THET,Q1,Q1) CALL ROTOR3( PHI,Q1,Q1) CALL ROTOR2(THET,Q2,Q2) CALL ROTOR3( PHI,Q2,Q2) CALL ROTOR2(THET,HV,HV) CALL ROTOR3( PHI,HV,HV) CALL ROTOR2(THET,PHX,PHX) CALL ROTOR3( PHI,PHX,PHX) DO 44,I=1,3 44 HHV(I)=-ISGN*HV(I) NEVACC=NEVACC+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVRAW.EQ.0) RETURN PARGAM=SWT/FLOAT(NEVRAW+1) ERROR=0 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR CC CALL HPRINT(803) GAMPMC(1)=RAT GAMPER(1)=ERROR CAM NEVDEC(1)=NEVACC ENDIF C ===== RETURN 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMEL FINAL REPORT ******** ',9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF EL DECAYS TOTAL ',9X,1H* $ /,' *',I20 ,5X,'NEVACC = NO. OF EL DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH ( ELECTRON) IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H* $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADMEL: LACK OF INITIALISATION') STOP END SUBROUTINE DADMMU(MODE,ISGN,HHV,PNU,PWB,Q1,Q2,PHX) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision PHX(4) double precision HHV(4),HV(4),PNU(4),PWB(4),Q1(4),Q2(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) double precision RRR(3) double precision SWT, SSWT DATA PI /3.141592653589793238462643/ DATA IWARM /0/ save iwarn, nevraw, nevacc, nevovr, swt, sswt, wtmax, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 NEVRAW=0 NEVACC=0 NEVOVR=0 SWT=0 SSWT=0 WTMAX=1E-20 DO 15 I=1,500 CALL DPHSMU(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5) IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 15 CONTINUE CC CALL HBOOK1(802,'WEIGHT DISTRIBUTION DADMMU $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 NEVRAW=NEVRAW+1 CALL DPHSMU(WT,HV,PNU,PWB,Q1,Q2,PHX) CC CALL HFILL(802,WT/WTMAX) SWT=SWT+WT SSWT=SSWT+WT**2 CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 IF(RN*WTMAX.GT.WT) GOTO 300 C ROTATIONS TO BASIC TAU REST FRAME COSTHE=-1.+2.*RRR(2) THET=ACOS(COSTHE) PHI =2*PI*RRR(3) CALL ROTOR2(THET,PNU,PNU) CALL ROTOR3( PHI,PNU,PNU) CALL ROTOR2(THET,PWB,PWB) CALL ROTOR3( PHI,PWB,PWB) CALL ROTOR2(THET,Q1,Q1) CALL ROTOR3( PHI,Q1,Q1) CALL ROTOR2(THET,Q2,Q2) CALL ROTOR3( PHI,Q2,Q2) CALL ROTOR2(THET,HV,HV) CALL ROTOR3( PHI,HV,HV) CALL ROTOR2(THET,PHX,PHX) CALL ROTOR3( PHI,PHX,PHX) DO 44,I=1,3 44 HHV(I)=-ISGN*HV(I) NEVACC=NEVACC+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVRAW.EQ.0) RETURN PARGAM=SWT/FLOAT(NEVRAW+1) ERROR=0 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR CC CALL HPRINT(802) GAMPMC(2)=RAT GAMPER(2)=ERROR CAM NEVDEC(2)=NEVACC ENDIF C ===== RETURN 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMMU FINAL REPORT ******** ',9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF MU DECAYS TOTAL ',9X,1H* $ /,' *',I20 ,5X,'NEVACC = NO. OF MU DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH (MU DECAY) IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.9,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,' *',25X, 'COMPLETE QED CORRECTIONS INCLUDED ',9X,1H* $ /,' *',25X, 'BUT ONLY V-A CUPLINGS ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADMMU: LACK OF INITIALISATION') STOP END SUBROUTINE DPHSEL(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX) C XNX,XNA was flipped in parameters of dphsel and dphsmu C ********************************************************************* C * ELECTRON DECAY MODE * C ********************************************************************* IMPLICIT double precision (A-H,O-Z) double precision PHX(4) double precision HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4) double precision HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4) double precision DGAMT IELMU=1 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) DO 7 K=1,4 HVX(K)=HV(K) PHX(K)=PH(K) PAAX(K)=PAA(K) XAX(K)=XA(K) QPX(K)=QP(K) XNX(K)=XN(K) 7 CONTINUE DGAMX=DGAMT END SUBROUTINE DPHSMU(DGAMX,HVX,XNX,PAAX,QPX,XAX,PHX) C XNX,XNA was flipped in parameters of dphsel and dphsmu C ********************************************************************* C * MUON DECAY MODE * C ********************************************************************* IMPLICIT double precision (A-H,O-Z) double precision PHX(4) double precision HVX(4),PAAX(4),XAX(4),QPX(4),XNX(4) double precision HV(4),PH(4),PAA(4),XA(4),QP(4),XN(4) double precision DGAMT IELMU=2 CALL DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) DO 7 K=1,4 HVX(K)=HV(K) PHX(K)=PH(K) PAAX(K)=PAA(K) XAX(K)=XA(K) QPX(K)=QP(K) XNX(K)=XN(K) 7 CONTINUE DGAMX=DGAMT END SUBROUTINE DRCMU(DGAMT,HV,PH,PAA,XA,QP,XN,IELMU) IMPLICIT double precision (A-H,O-Z) C ---------------------------------------------------------------------- * IT SIMULATES E,MU CHANNELS OF TAU DECAY IN ITS REST FRAME WITH * QED ORDER ALPHA CORRECTIONS C ---------------------------------------------------------------------- COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT COMMON / TAURAD / XK0DEC,ITDKRC double precision XK0DEC double precision HV(4),PT(4),PH(4),PAA(4),XA(4),QP(4),XN(4) double precision PR(4) double precision RRR(6) LOGICAL IHARD DATA PI /3.141592653589793238462643D0/ !XLAM(X,Y,Z)=SQRT((X-Y-Z)**2-4.0*Y*Z) C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY C C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) PHSPAC=1./2**17/PI**8 AMTAX=AMTAU C TAU MOMENTUM PT(1)=0.D0 PT(2)=0.D0 PT(3)=0.D0 PT(4)=AMTAX C CALL RANMAR(RRR,6) C IF (IELMU.EQ.1) THEN AMU=AMEL ELSE AMU=AMMU ENDIF C PRHARD=0.30D0 IF ( ITDKRC.EQ.0) PRHARD=0D0 PRSOFT=1.-PRHARD IF(PRSOFT.LT.0.1) THEN PRINT *, 'ERROR IN DRCMU; PRSOFT=',PRSOFT STOP ENDIF C RR5=RRR(5) IHARD=(RR5.GT.PRSOFT) IF (IHARD) THEN C TAU DECAY TO 'TAU+photon' RR1=RRR(1) AMS1=(AMU+AMNUTA)**2 AMS2=(AMTAX)**2 XK1=1-AMS1/AMS2 XL1=LOG(XK1/2/XK0DEC) XL0=LOG(2*XK0DEC) XK=EXP(XL1*RR1+XL0) AM3SQ=(1-XK)*AMS2 AM3 =SQRT(AM3SQ) PHSPAC=PHSPAC*AMS2*XL1*XK PHSPAC=PHSPAC/PRHARD ELSE AM3=AMTAX PHSPAC=PHSPAC*2**6*PI**3 PHSPAC=PHSPAC/PRSOFT ENDIF C MASS OF NEUTRINA SYSTEM RR2=RRR(2) AMS1=(AMNUTA)**2 AMS2=(AM3-AMU)**2 CAM CAM * FLAT PHASE SPACE; AM2SQ=AMS1+ RR2*(AMS2-AMS1) AM2 =SQRT(AM2SQ) PHSPAC=PHSPAC*(AMS2-AMS1) * NEUTRINA REST FRAME, DEFINE XN AND XA ENQ1=(AM2SQ+AMNUTA**2)/(2*AM2) ENQ2=(AM2SQ-AMNUTA**2)/(2*AM2) PPI= ENQ1**2-AMNUTA**2 PPPI=SQRT(ABS(ENQ1**2-AMNUTA**2)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2) * NU TAU IN NUNU REST FRAME CALL SPHERD(PPPI,XN) XN(4)=ENQ1 * NU LIGHT IN NUNU REST FRAME DO 30 I=1,3 30 XA(I)=-XN(I) XA(4)=ENQ2 * TAU-prim REST FRAME, DEFINE QP (muon * NUNU MOMENTUM PR(1)=0 PR(2)=0 PR(4)=1.D0/(2*AM3)*(AM3**2+AM2**2-AMU**2) PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) PPI = PR(4)**2-AM2**2 * MUON MOMENTUM QP(1)=0 QP(2)=0 QP(4)=1.D0/(2*AM3)*(AM3**2-AM2**2+AMU**2) QP(3)=-PR(3) PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AM3) * NEUTRINA BOOSTED FROM THEIR FRAME TO TAU-prim REST FRAME EXE=(PR(4)+PR(3))/AM2 CALL BOSTD3(EXE,XN,XN) CALL BOSTD3(EXE,XA,XA) RR3=RRR(3) RR4=RRR(4) IF (IHARD) THEN EPS=4*(AMU/AMTAX)**2 XL1=LOG((2+EPS)/EPS) XL0=LOG(EPS) ETA =EXP(XL1*RR3+XL0) CTHET=1+EPS-ETA THET =ACOS(CTHET) PHSPAC=PHSPAC*XL1/2*ETA PHI = 2*PI*RR4 CALL ROTPOX(THET,PHI,XN) CALL ROTPOX(THET,PHI,XA) CALL ROTPOX(THET,PHI,QP) CALL ROTPOX(THET,PHI,PR) C * NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA * tau-prim MOMENTUM PAA(1)=0 PAA(2)=0 PAA(4)=1/(2*AMTAX)*(AMTAX**2+AM3**2) PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2)) PPI = PAA(4)**2-AM3**2 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAX) * GAMMA MOMENTUM PH(1)=0 PH(2)=0 PH(4)=PAA(3) PH(3)=-PAA(3) * ALL MOMENTA BOOSTED FROM TAU-prim REST FRAME TO TAU REST FRAME * Z-AXIS ANTIPARALLEL TO PHOTON MOMENTUM EXE=(PAA(4)+PAA(3))/AM3 CALL BOSTD3(EXE,XN,XN) CALL BOSTD3(EXE,XA,XA) CALL BOSTD3(EXE,QP,QP) CALL BOSTD3(EXE,PR,PR) ELSE THET =ACOS(-1.+2*RR3) PHI = 2*PI*RR4 CALL ROTPOX(THET,PHI,XN) CALL ROTPOX(THET,PHI,XA) CALL ROTPOX(THET,PHI,QP) CALL ROTPOX(THET,PHI,PR) C * NOW TO THE TAU REST FRAME, DEFINE TAU-prim AND GAMMA MOMENTA * tau-prim MOMENTUM PAA(1)=0 PAA(2)=0 PAA(4)=AMTAX PAA(3)=0 * GAMMA MOMENTUM PH(1)=0 PH(2)=0 PH(4)=0 PH(3)=0 ENDIF C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE CALL DAMPRY(ITDKRC,XK0DEC,PH,XA,QP,XN,AMPLIT,HV) DGAMT=1/(2.*AMTAX)*AMPLIT*PHSPAC END SUBROUTINE DAMPRY(ITDKRC,XK0DEC,XK,XA,QP,XN,AMPLIT,HV) IMPLICIT double precision (A-H,O-Z) C ---------------------------------------------------------------------- C IT CALCULATES MATRIX ELEMENT FOR THE C TAU --> MU(E) NU NUBAR DECAY MODE C INCLUDING COMPLETE ORDER ALPHA QED CORRECTIONS. C ---------------------------------------------------------------------- COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST double precision HV(4),QP(4),XN(4),XA(4),XK(4) C HV(4)=1.D0 AK0=XK0DEC*AMTAU IF(XK(4).LT.0.1D0*AK0) THEN AMPLIT=THB(ITDKRC,QP,XN,XA,AK0,HV) ELSE AMPLIT=SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV) ENDIF RETURN END double precision FUNCTION SQM2(ITDKRC,QP,XN,XA,XK,AK0,HV) C C ********************************************************************** C REAL PHOTON MATRIX ELEMENT SQUARED * C PARAMETERS: * C HV- POLARIMETRIC FOUR-VECTOR OF TAU * C QP,XN,XA,XK - 4-momenta of electron (muon), NU, NUBAR and PHOTON * C All four-vectors in TAU rest frame (in GeV) * C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS (GEV) * C SQM2 - value for S=0 * C see Eqs. (2.9)-(2.10) from CJK ( Nucl.Phys.B(1991) ) * C ********************************************************************** C IMPLICIT double precision(A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / QEDPRM /ALFINV,ALFPI,XK0 double precision ALFINV,ALFPI,XK0 double precision QP(4),XN(4),XA(4),XK(4) double precision R(4) double precision HV(4) double precision S0(3),RXA(3),RXK(3),RQP(3) DATA PI /3.141592653589793238462643D0/ C TMASS=AMTAU GF=GFERMI ALPHAI=ALFINV TMASS2=TMASS**2 EMASS2=QP(4)**2-QP(1)**2-QP(2)**2-QP(3)**2 R(4)=TMASS C SCALAR PRODUCTS OF FOUR-MOMENTA DO 7 I=1,3 R(1)=0.D0 R(2)=0.D0 R(3)=0.D0 R(I)=TMASS RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3) C RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3) RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3) RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3) 7 CONTINUE QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3) QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3) QPXK=QP(4)*XK(4)-QP(1)*XK(1)-QP(2)*XK(2)-QP(3)*XK(3) c XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3) XNXK=XN(4)*XK(4)-XN(1)*XK(1)-XN(2)*XK(2)-XN(3)*XK(3) XAXK=XA(4)*XK(4)-XA(1)*XK(1)-XA(2)*XK(2)-XA(3)*XK(3) TXN=TMASS*XN(4) TXA=TMASS*XA(4) TQP=TMASS*QP(4) TXK=TMASS*XK(4) C X= XNXK/QPXN Z= TXK/TQP A= 1+X B= 1+ X*(1+Z)/2+Z/2 S1= QPXN*TXA*( -EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B- $TMASS2/TXK**2) + $QPXN/TXK**2* ( TMASS2*XAXK - TXA*TXK+ XAXK*TXK) - $TXA*TXN/TXK - QPXN/(QPXK*TXK)* (TQP*XAXK-TXK*QPXA) CONST4=256*PI/ALPHAI*GF**2 IF (ITDKRC.EQ.0) CONST4=0D0 SQM2=S1*CONST4 DO 5 I=1,3 S0(I) = QPXN*RXA(I)*(-EMASS2/QPXK**2*A + 2*TQP/(QPXK*TXK)*B- $ TMASS2/TXK**2) + $ QPXN/TXK**2* (TMASS2*XAXK - TXA*RXK(I)+ XAXK*RXK(I))- $ RXA(I)*TXN/TXK - QPXN/(QPXK*TXK)*(RQP(I)*XAXK- RXK(I)*QPXA) 5 HV(I)=S0(I)/S1-1.D0 RETURN END double precision FUNCTION THB(ITDKRC,QP,XN,XA,AK0,HV) C C ********************************************************************** C BORN +VIRTUAL+SOFT PHOTON MATRIX ELEMENT**2 O(ALPHA) * C PARAMETERS: * C HV- POLARIMETRIC FOUR-VECTOR OF TAU * C QP,XN,XA - FOUR-MOMENTA OF ELECTRON (MUON), NU AND NUBAR IN GEV * C ALL FOUR-VECTORS IN TAU REST FRAME * C AK0 - INFRARED CUTOFF, MINIMAL ENERGY OF HARD PHOTONS * C THB - VALUE FOR S=0 * C SEE EQS. (2.2),(2.4)-(2.5) FROM CJK (NUCL.PHYS.B351(1991)70 * C AND (C.2) FROM JK (NUCL.PHYS.B320(1991)20 ) * C ********************************************************************** C IMPLICIT double precision(A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / QEDPRM /ALFINV,ALFPI,XK0 double precision ALFINV,ALFPI,XK0 DIMENSION QP(4),XN(4),XA(4) double precision HV(4) DIMENSION R(4) double precision RXA(3),RXN(3),RQP(3) double precision BORNPL(3),AM3POL(3),XM3POL(3) DATA PI /3.141592653589793238462643D0/ C TMASS=AMTAU GF=GFERMI ALPHAI=ALFINV C TMASS2=TMASS**2 R(4)=TMASS DO 7 I=1,3 R(1)=0.D0 R(2)=0.D0 R(3)=0.D0 R(I)=TMASS RXA(I)=R(4)*XA(4)-R(1)*XA(1)-R(2)*XA(2)-R(3)*XA(3) RXN(I)=R(4)*XN(4)-R(1)*XN(1)-R(2)*XN(2)-R(3)*XN(3) C RXK(I)=R(4)*XK(4)-R(1)*XK(1)-R(2)*XK(2)-R(3)*XK(3) RQP(I)=R(4)*QP(4)-R(1)*QP(1)-R(2)*QP(2)-R(3)*QP(3) 7 CONTINUE C QUASI TWO-BODY VARIABLES U0=QP(4)/TMASS U3=SQRT(QP(1)**2+QP(2)**2+QP(3)**2)/TMASS W3=U3 W0=(XN(4)+XA(4))/TMASS UP=U0+U3 UM=U0-U3 WP=W0+W3 WM=W0-W3 YU=LOG(UP/UM)/2 YW=LOG(WP/WM)/2 EPS2=U0**2-U3**2 EPS=SQRT(EPS2) Y=W0**2-W3**2 AL=AK0/TMASS C FORMFACTORS F0=2*U0/U3*( DILOGT(1-(UM*WM/(UP*WP)))- DILOGT(1-WM/WP) + $DILOGT(1-UM/UP) -2*YU+ 2*LOG(UP)*(YW+YU) ) + $1/Y* ( 2*U3*YU + (1-EPS2- 2*Y)*LOG(EPS) ) + $ 2 - 4*(U0/U3*YU -1)* LOG(2*AL) FP= YU/(2*U3)*(1 + (1-EPS2)/Y ) + LOG(EPS)/Y FM= YU/(2*U3)*(1 - (1-EPS2)/Y ) - LOG(EPS)/Y F3= EPS2*(FP+FM)/2 C SCALAR PRODUCTS OF FOUR-MOMENTA QPXN=QP(4)*XN(4)-QP(1)*XN(1)-QP(2)*XN(2)-QP(3)*XN(3) QPXA=QP(4)*XA(4)-QP(1)*XA(1)-QP(2)*XA(2)-QP(3)*XA(3) XNXA=XN(4)*XA(4)-XN(1)*XA(1)-XN(2)*XA(2)-XN(3)*XA(3) TXN=TMASS*XN(4) TXA=TMASS*XA(4) TQP=TMASS*QP(4) C DECAY DIFFERENTIAL WIDTH WITHOUT AND WITH POLARIZATION CONST3=1/(2*ALPHAI*PI)*64*GF**2 IF (ITDKRC.EQ.0) CONST3=0D0 XM3= -( F0* QPXN*TXA + FP*EPS2* TXN*TXA + $FM* QPXN*QPXA + F3* TMASS2*XNXA ) AM3=XM3*CONST3 C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY BRAK= (GV+GA)**2*TQP*XNXA+(GV-GA)**2*TXA*QPXN & -(GV**2-GA**2)*TMASS*AMNUTA*QPXA BORN= 32*(GFERMI**2/2.)*BRAK DO 5 I=1,3 XM3POL(I)= -( F0* QPXN*RXA(I) + FP*EPS2* TXN*RXA(I) + $ FM* QPXN* (QPXA + (RXA(I)*TQP-TXA*RQP(I))/TMASS2 ) + $ F3* (TMASS2*XNXA +TXN*RXA(I) -RXN(I)*TXA) ) AM3POL(I)=XM3POL(I)*CONST3 C V-A AND V+A COUPLINGS, BUT IN THE BORN PART ONLY BORNPL(I)=BORN+( & (GV+GA)**2*TMASS*XNXA*QP(I) & -(GV-GA)**2*TMASS*QPXN*XA(I) & +(GV**2-GA**2)*AMNUTA*TXA*QP(I) & -(GV**2-GA**2)*AMNUTA*TQP*XA(I) )* & 32*(GFERMI**2/2.) 5 HV(I)=(BORNPL(I)+AM3POL(I))/(BORN+AM3)-1.D0 THB=BORN+AM3 IF (THB/BORN.LT.0.1D0) THEN PRINT *, 'ERROR IN THB, THB/BORN=',THB/BORN STOP ENDIF RETURN END SUBROUTINE DEXPI(MODE,ISGN,POL,PPI,PNU) C ---------------------------------------------------------------------- C TAU DECAY INTO PION AND TAU-NEUTRINO C IN TAU REST FRAME C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, C PPI PION CHARGED C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision POL(4),HV(4),PNU(4),PPI(4),RN(1) save hv CC IF(MODE.EQ.-1) THEN C =================== CALL DADMPI(-1,ISGN,HV,PPI,PNU) CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2) ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE CALL DADMPI( 0,ISGN,HV,PPI,PNU) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(815,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ======================= CALL DADMPI( 1,ISGN,HV,PPI,PNU) CC CALL HPRINT(815) ENDIF C ===== RETURN END SUBROUTINE DADMPI(MODE,ISGN,HV,PPI,PNU) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision PPI(4),PNU(4),HV(4) DATA PI /3.141592653589793238462643/ save nevtot C IF(MODE.EQ.-1) THEN C =================== NEVTOT=0 ELSEIF(MODE.EQ. 0) THEN C ======================= NEVTOT=NEVTOT+1 EPI= (AMTAU**2+AMPI**2-AMNUTA**2)/(2*AMTAU) ENU= (AMTAU**2-AMPI**2+AMNUTA**2)/(2*AMTAU) XPI= SQRT(EPI**2-AMPI**2) C PI MOMENTUM CALL SPHERA(XPI,PPI) PPI(4)=EPI C TAU-NEUTRINO MOMENTUM DO 30 I=1,3 30 PNU(I)=-PPI(I) PNU(4)=ENU PXQ=AMTAU*EPI PXN=AMTAU*ENU QXN=PPI(4)*PNU(4)-PPI(1)*PNU(1)-PPI(2)*PNU(2)-PPI(3)*PNU(3) BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMPI**2*PXN) & +(GV**2-GA**2)*AMTAU*AMNUTA*AMPI**2 DO 40 I=1,3 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PPI(I)*QXN-PNU(I)*AMPI**2)/BRAK HV(4)=1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVTOT.EQ.0) RETURN FPI=0.1284 C GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3* C * (BRAK/AMTAU**4)**2 CZW 7.02.93 here was an error affecting non standard model C configurations only GAMM=(GFERMI*FPI)**2/(16.*PI)*AMTAU**3* $ (BRAK/AMTAU**4)* $ SQRT((AMTAU**2-AMPI**2-AMNUTA**2)**2 $ -4*AMPI**2*AMNUTA**2 )/AMTAU**2 ERROR=0 RAT=GAMM/GAMEL WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR GAMPMC(3)=RAT GAMPER(3)=ERROR CAM NEVDEC(3)=NEVTOT ENDIF C ===== RETURN 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMPI FINAL REPORT ******** ',9X,1H* $ /,' *',I20 ,5X,'NEVTOT = NO. OF PI DECAYS TOTAL ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH ( PI DECAY) IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H* $ /,1X,15(5H*****)/) END SUBROUTINE DEXRO(MODE,ISGN,POL,PNU,PRO,PIC,PIZ) C ---------------------------------------------------------------------- C THIS SIMULATES TAU DECAY IN TAU REST FRAME C INTO NU RHO, NEXT RHO DECAYS INTO PION PAIR. C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, C PRO RHO C PIC PION CHARGED C PIZ PION ZERO C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / INOUT / INUT,IOUT double precision POL(4),HV(4),PRO(4),PNU(4),PIC(4),PIZ(4),RN(1) DATA IWARM/0/ save iwarn, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CALL DADMRO( -1,ISGN,HV,PNU,PRO,PIC,PIZ) CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXRO $',100,0,2) CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXRO $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADMRO( 0,ISGN,HV,PNU,PRO,PIC,PIZ) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(816,WT) CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2 CC CALL HFILL(916,XHELP) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ======================= CALL DADMRO( 1,ISGN,HV,PNU,PRO,PIC,PIZ) CC CALL HPRINT(816) CC CALL HPRINT(916) ENDIF C ===== RETURN 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXRO: LACK OF INITIALISATION') STOP END SUBROUTINE DADMRO(MODE,ISGN,HHV,PNU,PRO,PIC,PIZ) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision HHV(4) double precision HV(4),PRO(4),PNU(4),PIC(4),PIZ(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4) double precision RRR(3) double precision WT, SWT, SSWT SAVE NEVRAW, NEVACC, NEVOVR, WT, SWT, SSWT, WTMAX DATA PI /3.141592653589793238462643/ DATA IWARM/0/ save iwarn, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 NEVRAW=0 NEVACC=0 NEVOVR=0 SWT=0 SSWT=0 WTMAX=1E-20 DO 15 I=1,500 CALL DPHSRO(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4) IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 15 CONTINUE CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMRO $',100,0,2) CC PRINT 7003,WTMAX C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DPHSRO(WT,HV,PNU,PRO,PIC,PIZ) CC CALL HFILL(801,WT/WTMAX) NEVRAW=NEVRAW+1 SWT=SWT+WT SSWT=SSWT+WT**2 CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 IF(RN*WTMAX.GT.WT) GOTO 300 C ROTATIONS TO BASIC TAU REST FRAME COSTHE=-1.+2.*RRR(2) THET=ACOS(COSTHE) PHI =2*PI*RRR(3) CALL ROTOR2(THET,PNU,PNU) CALL ROTOR3( PHI,PNU,PNU) CALL ROTOR2(THET,PRO,PRO) CALL ROTOR3( PHI,PRO,PRO) CALL ROTOR2(THET,PIC,PIC) CALL ROTOR3( PHI,PIC,PIC) CALL ROTOR2(THET,PIZ,PIZ) CALL ROTOR3( PHI,PIZ,PIZ) CALL ROTOR2(THET,HV,HV) CALL ROTOR3( PHI,HV,HV) DO 44 I=1,3 44 HHV(I)=-ISGN*HV(I) NEVACC=NEVACC+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVRAW.EQ.0) RETURN PARGAM=SWT/FLOAT(NEVRAW+1) ERROR=0 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR CC CALL HPRINT(801) GAMPMC(4)=RAT GAMPER(4)=ERROR CAM NEVDEC(4)=NEVACC ENDIF C ===== RETURN 7003 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMRO INITIALISATION ********',9X,1H* $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* $ /,1X,15(5H*****)/) 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMRO FINAL REPORT ******** ',9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF RHO DECAYS TOTAL ',9X,1H* $ /,' *',I20 ,5X,'NEVACC = NO. OF RHO DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH (RHO DECAY) IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADMRO: LACK OF INITIALISATION') STOP END SUBROUTINE DPHSRO(DGAMT,HV,PN,PR,PIC,PIZ) C ---------------------------------------------------------------------- C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH C Z-AXIS ALONG RHO MOMENTUM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PR(4), * PIC(4),PIZ(4),QQ(4),RR1(1) DATA PI /3.141592653589793238462643/ DATA ICONT /0/ C C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL PHSPAC=1./2**11/PI**5 C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C MASS OF (REAL/VIRTUAL) RHO AMS1=(AMPI+AMPIZ)**2 AMS2=(AMTAU-AMNUTA)**2 C FLAT PHASE SPACE C AMX2=AMS1+ RR1(1)*(AMS2-AMS1) C AMX=SQRT(AMX2) C PHSPAC=PHSPAC*(AMS2-AMS1) C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO) ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO) CAM 100 CONTINUE CALL RANMAR(RR1,1) ALP=ALP1+RR1(1)*(ALP2-ALP1) AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP) AMX=SQRT(AMX2) IF(AMX.LT.2.*AMPI) GO TO 100 CAM PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO) PHSPAC=PHSPAC*(ALP2-ALP1) C C TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA)) C RHO MOMENTUM PR(1)=0 PR(2)=0 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) PR(3)=-PN(3) PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU) C CAM ENQ1=(AMX2+AMPI**2-AMPIZ**2)/(2.*AMX) ENQ2=(AMX2-AMPI**2+AMPIZ**2)/(2.*AMX) PPPI=SQRT((ENQ1-AMPI)*(ENQ1+AMPI)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) C CHARGED PI MOMENTUM IN RHO REST FRAME CALL SPHERA(PPPI,PIC) PIC(4)=ENQ1 C NEUTRAL PI MOMENTUM IN RHO REST FRAME DO 20 I=1,3 20 PIZ(I)=-PIC(I) PIZ(4)=ENQ2 EXE=(PR(4)+PR(3))/AMX C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME CALL BOSTR3(EXE,PIC,PIC) CALL BOSTR3(EXE,PIZ,PIZ) DO 30 I=1,4 30 QQ(I)=PIC(I)-PIZ(I) C AMPLITUDE PRODPQ=PT(4)*QQ(4) PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3) PRODPN=PT(4)*PN(4) QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2) & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRHO(AMX) DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC DO 40 I=1,3 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK RETURN END SUBROUTINE DEXAA(MODE,ISGN,POL,PNU,PAA,PIM1,PIM2,PIPL,JAA) C ---------------------------------------------------------------------- * THIS SIMULATES TAU DECAY IN TAU REST FRAME * INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI. * OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, * PAA A1 * PIM1 PION MINUS (OR PI0) 1 (FOR TAU MINUS) * PIM2 PION MINUS (OR PI0) 2 * PIPL PION PLUS (OR PI-) * (PIPL,PIM1) FORM A RHO C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / INOUT / INUT,IOUT double precision POL(4),HV(4),PAA(4),PNU(4), * PIM1(4),PIM2(4),PIPL(4),RN(1) DATA IWARM/0/ save iwarn, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CALL DADMAA( -1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXAA $',100,-2.,2.) C ELSEIF(MODE.EQ. 0) THEN * ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADMAA( 0,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(816,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN * ======================= CALL DADMAA( 1,ISGN,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) CC CALL HPRINT(816) ENDIF C ===== RETURN 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXAA: LACK OF INITIALISATION') STOP END SUBROUTINE DADMAA(MODE,ISGN,HHV,PNU,PAA,PIM1,PIM2,PIPL,JAA) C ---------------------------------------------------------------------- * A1 DECAY UNWEIGHTED EVENTS C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision HHV(4) double precision HV(4),PAA(4),PNU(4),PIM1(4),PIM2(4),PIPL(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4),PDUM5(4) double precision RRR(3) double precision SWT, SSWT SAVE IWARM,NEVRAW,NEVACC,NEVOVR,SWT,SSWT,WTMAX DATA PI /3.141592653589793238462643/ DATA IWARM/0/ save hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 NEVRAW=0 NEVACC=0 NEVOVR=0 SWT=0 SSWT=0 WTMAX=1E-20 DO 15 I=1,500 CALL DPHSAA(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,PDUM5,JAA) IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 15 CONTINUE CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMAA $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DPHSAA(WT,HV,PNU,PAA,PIM1,PIM2,PIPL,JAA) CC CALL HFILL(801,WT/WTMAX) NEVRAW=NEVRAW+1 SWT=SWT+WT SSWT=SSWT+WT**2 CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 IF(RN*WTMAX.GT.WT) GOTO 300 C ROTATIONS TO BASIC TAU REST FRAME COSTHE=-1.+2.*RRR(2) THET=ACOS(COSTHE) PHI =2*PI*RRR(3) CALL ROTPOL(THET,PHI,PNU) CALL ROTPOL(THET,PHI,PAA) CALL ROTPOL(THET,PHI,PIM1) CALL ROTPOL(THET,PHI,PIM2) CALL ROTPOL(THET,PHI,PIPL) CALL ROTPOL(THET,PHI,HV) DO 44 I=1,3 44 HHV(I)=-ISGN*HV(I) NEVACC=NEVACC+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVRAW.EQ.0) RETURN PARGAM=SWT/FLOAT(NEVRAW+1) ERROR=0 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR CC CALL HPRINT(801) GAMPMC(5)=RAT GAMPER(5)=ERROR CAM NEVDEC(5)=NEVACC ENDIF C ===== RETURN 7003 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMAA INITIALISATION ********',9X,1H* $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* $ /,1X,15(5H*****)/) 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMAA FINAL REPORT ******** ',9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF A1 DECAYS TOTAL ',9X,1H* $ /,' *',I20 ,5X,'NEVACC = NO. OF A1 DECS. ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH (A1 DECAY) IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADMAA: LACK OF INITIALISATION') STOP END SUBROUTINE DPHSAA(DGAMT,HV,PN,PAA,PIM1,PIM2,PIPL,JAA) C ---------------------------------------------------------------------- * IT SIMULATES A1 DECAY IN TAU REST FRAME WITH * Z-AXIS ALONG A1 MOMENTUM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS double precision BRA1,BRK0,BRK0B,BRKS double precision HV(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) double precision RRR(1) C MATRIX ELEMENT NUMBER: MNUM=0 C TYPE OF THE GENERATION: KEYT=1 CALL RANMAR(RRR,1) RMOD=RRR(1) IF (RMOD.LT.BRA1) THEN JAA=1 AMP1=AMPI AMP2=AMPI AMP3=AMPI ELSE JAA=2 AMP1=AMPIZ AMP2=AMPIZ AMP3=AMPI ENDIF CALL $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM) END SUBROUTINE DEXKK(MODE,ISGN,POL,PKK,PNU) C ---------------------------------------------------------------------- C TAU DECAY INTO KAON AND TAU-NEUTRINO C IN TAU REST FRAME C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, C PKK KAON CHARGED C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision POL(4),HV(4),PNU(4),PKK(4),RN(1) save hv C IF(MODE.EQ.-1) THEN C =================== CALL DADMKK(-1,ISGN,HV,PKK,PNU) CC CALL HBOOK1(815,'WEIGHT DISTRIBUTION DEXPI $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE CALL DADMKK( 0,ISGN,HV,PKK,PNU) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(815,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ======================= CALL DADMKK( 1,ISGN,HV,PKK,PNU) CC CALL HPRINT(815) ENDIF C ===== RETURN END SUBROUTINE DADMKK(MODE,ISGN,HV,PKK,PNU) C ---------------------------------------------------------------------- C FZ IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / INOUT / INUT,IOUT double precision PKK(4),PNU(4),HV(4) DATA PI /3.141592653589793238462643/ save nevtot C IF(MODE.EQ.-1) THEN C =================== NEVTOT=0 ELSEIF(MODE.EQ. 0) THEN C ======================= NEVTOT=NEVTOT+1 EKK= (AMTAU**2+AMK**2-AMNUTA**2)/(2*AMTAU) ENU= (AMTAU**2-AMK**2+AMNUTA**2)/(2*AMTAU) XKK= SQRT(EKK**2-AMK**2) C K MOMENTUM CALL SPHERA(XKK,PKK) PKK(4)=EKK C TAU-NEUTRINO MOMENTUM DO 30 I=1,3 30 PNU(I)=-PKK(I) PNU(4)=ENU PXQ=AMTAU*EKK PXN=AMTAU*ENU QXN=PKK(4)*PNU(4)-PKK(1)*PNU(1)-PKK(2)*PNU(2)-PKK(3)*PNU(3) BRAK=(GV**2+GA**2)*(2*PXQ*QXN-AMK**2*PXN) & +(GV**2-GA**2)*AMTAU*AMNUTA*AMK**2 DO 40 I=1,3 40 HV(I)=-ISGN*2*GA*GV*AMTAU*(2*PKK(I)*QXN-PNU(I)*AMK**2)/BRAK HV(4)=1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVTOT.EQ.0) RETURN FKK=0.0354 CFZ THERE WAS BRAK/AMTAU**4 BEFORE C GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3* C * (BRAK/AMTAU**4)**2 CZW 7.02.93 here was an error affecting non standard model C configurations only GAMM=(GFERMI*FKK)**2/(16.*PI)*AMTAU**3* $ (BRAK/AMTAU**4)* $ SQRT((AMTAU**2-AMK**2-AMNUTA**2)**2 $ -4*AMK**2*AMNUTA**2 )/AMTAU**2 ERROR=0 ERROR=0 RAT=GAMM/GAMEL WRITE(IOUT, 7010) NEVTOT,GAMM,RAT,ERROR GAMPMC(6)=RAT GAMPER(6)=ERROR CAM NEVDEC(6)=NEVTOT ENDIF C ===== RETURN 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMKK FINAL REPORT ********',9X,1H* $ /,' *',I20 ,5X,'NEVTOT = NO. OF K DECAYS TOTAL ',9X,1H*, $ /,' *',E20.5,5X,'PARTIAL WTDTH ( K DECAY) IN GEV UNITS ',9X,1H*, $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH (STAT.)',9X,1H* $ /,1X,15(5H*****)/) END SUBROUTINE DEXKS(MODE,ISGN,POL,PNU,PKS,PKK,PPI,JKST) C ---------------------------------------------------------------------- C THIS SIMULATES TAU DECAY IN TAU REST FRAME C INTO NU K*, THEN K* DECAYS INTO PI0,K+-(JKST=20) C OR PI+-,K0(JKST=10). C OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, C PKS K* CHARGED C PK0 K ZERO C PKC K CHARGED C PIC PION CHARGED C PIZ PION ZERO C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / INOUT / INUT,IOUT double precision POL(4),HV(4),PKS(4),PNU(4),PKK(4),PPI(4),RN(1) DATA IWARM/0/ save iwarn, hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CFZ INITIALISATION DONE WITH THE GHARGED PION NEUTRAL KAON MODE(JKST=10 CALL DADMKS( -1,ISGN,HV,PNU,PKS,PKK,PPI,JKST) CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXKS $',100,0,2) CC CALL HBOOK1(916,'ABS2 OF HV IN ROUTINE DEXKS $',100,0,2) C ELSEIF(MODE.EQ. 0) THEN C ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADMKS( 0,ISGN,HV,PNU,PKS,PKK,PPI,JKST) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(816,WT) CC XHELP=HV(1)**2+HV(2)**2+HV(3)**2 CC CALL HFILL(916,XHELP) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN C ====================================== CALL DADMKS( 1,ISGN,HV,PNU,PKS,PKK,PPI,JKST) CC CALL HPRINT(816) CC CALL HPRINT(916) ENDIF C ===== RETURN 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXKS: LACK OF INITIALISATION') STOP END SUBROUTINE DADMKS(MODE,ISGN,HHV,PNU,PKS,PKK,PPI,JKST) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS double precision BRA1,BRK0,BRK0B,BRKS COMMON / INOUT / INUT,IOUT double precision HHV(4) double precision HV(4),PKS(4),PNU(4),PKK(4),PPI(4) double precision PDUM1(4),PDUM2(4),PDUM3(4),PDUM4(4) double precision RRR(3),RMOD(1) double precision SWT, SSWT DATA PI /3.141592653589793238462643/ DATA IWARM/0/ save iwarn, nevraw, nevacc, nevovr, swt, sswt, wtmax save hv C IF(MODE.EQ.-1) THEN C =================== IWARM=1 NEVRAW=0 NEVACC=0 NEVOVR=0 SWT=0 SSWT=0 WTMAX=1E-20 DO 15 I=1,500 C THE INITIALISATION IS DONE WITH THE 66.7% MODE JKST=10 CALL DPHSKS(WT,HV,PDUM1,PDUM2,PDUM3,PDUM4,JKST) IF(WT.GT.WTMAX/1.2) WTMAX=WT*1.2 15 CONTINUE CC CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADMKS $',100,0,2) CC PRINT 7003,WTMAX CC CALL HBOOK1(112,'-------- K* MASS -------- $',100,0.,2.) ELSEIF(MODE.EQ. 0) THEN C ===================================== IF(IWARM.EQ.0) GOTO 902 C HERE WE CHOOSE RANDOMLY BETWEEN K0 PI+_ (66.7%) C AND K+_ PI0 (33.3%) DEC1=BRKS 400 CONTINUE CALL RANMAR(RMOD,1) IF(RMOD(1).LT.DEC1) THEN JKST=10 ELSE JKST=20 ENDIF CALL DPHSKS(WT,HV,PNU,PKS,PKK,PPI,JKST) CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX) NEVOVR=NEVOVR+1 NEVRAW=NEVRAW+1 SWT=SWT+WT SSWT=SSWT+WT**2 IF(RN*WTMAX.GT.WT) GOTO 400 C ROTATIONS TO BASIC TAU REST FRAME COSTHE=-1.+2.*RRR(2) THET=ACOS(COSTHE) PHI =2*PI*RRR(3) CALL ROTOR2(THET,PNU,PNU) CALL ROTOR3( PHI,PNU,PNU) CALL ROTOR2(THET,PKS,PKS) CALL ROTOR3( PHI,PKS,PKS) CALL ROTOR2(THET,PKK,PKK) CALL ROTOR3(PHI,PKK,PKK) CALL ROTOR2(THET,PPI,PPI) CALL ROTOR3( PHI,PPI,PPI) CALL ROTOR2(THET,HV,HV) CALL ROTOR3( PHI,HV,HV) DO 44 I=1,3 44 HHV(I)=-ISGN*HV(I) NEVACC=NEVACC+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= IF(NEVRAW.EQ.0) RETURN PARGAM=SWT/FLOAT(NEVRAW+1) ERROR=0 IF(NEVRAW.NE.0) ERROR=SQRT(SSWT/SWT**2-1./FLOAT(NEVRAW)) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NEVRAW,NEVACC,NEVOVR,PARGAM,RAT,ERROR CC CALL HPRINT(801) GAMPMC(7)=RAT GAMPER(7)=ERROR CAM NEVDEC(7)=NEVACC ENDIF C ===== RETURN 7003 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMKS INITIALISATION ********',9X,1H* $ /,' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H* $ /,1X,15(5H*****)/) 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADMKS FINAL REPORT ********',9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF K* DECAYS TOTAL ',9X,1H*, $ /,' *',I20 ,5X,'NEVACC = NO. OF K* DECS. ACCEPTED ',9X,1H*, $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH (K* DECAY) IN GEV UNITS ',9X,1H*, $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADMKS: LACK OF INITIALISATION') STOP END SUBROUTINE DPHSKS(DGAMT,HV,PN,PKS,PKK,PPI,JKST) C ---------------------------------------------------------------------- C IT SIMULATES KAON* DECAY IN TAU REST FRAME WITH C Z-AXIS ALONG KAON* MOMENTUM C JKST=10 FOR K* --->K0 + PI+- C JKST=20 FOR K* --->K+- + PI0 C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PKS(4), * PKK(4),PPI(4),QQ(4),RR1(1) cam double complex BWIGS double complex BWIGM DATA PI /3.141592653589793238462643/ C DATA ICONT /0/ save icont, pt, qq C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL PHSPAC=1./2**11/PI**5 C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU CALL RANMAR(RR1,1) C HERE BEGIN THE K0,PI+_ DECAY IF(JKST.EQ.10)THEN C ================== C MASS OF (REAL/VIRTUAL) K* AMS1=(AMPI+AMKZ)**2 AMS2=(AMTAU-AMNUTA)**2 C FLAT PHASE SPACE C AMX2=AMS1+ RR1(1)*(AMS2-AMS1) C AMX=SQRT(AMX2) C PHSPAC=PHSPAC*(AMS2-AMS1) C PHASE SPACE WITH SAMPLING FOR K* RESONANCE ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST) ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST) ALP=ALP1+RR1(1)*(ALP2-ALP1) AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP) AMX=SQRT(AMX2) PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2) & /(AMKST*GAMKST) PHSPAC=PHSPAC*(ALP2-ALP1) C C TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA)) C C K* MOMENTUM PKS(1)=0 PKS(2)=0 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) PKS(3)=-PN(3) PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU) C CAM ENPI=( AMX**2+AMPI**2-AMKZ**2 ) / ( 2*AMX ) PPPI=SQRT((ENPI-AMPI)*(ENPI+AMPI)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) C CHARGED PI MOMENTUM IN KAON* REST FRAME CALL SPHERA(PPPI,PPI) PPI(4)=ENPI C NEUTRAL KAON MOMENTUM IN K* REST FRAME DO 20 I=1,3 20 PKK(I)=-PPI(I) PKK(4)=( AMX**2+AMKZ**2-AMPI**2 ) / ( 2*AMX ) EXE=(PKS(4)+PKS(3))/AMX C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME CALL BOSTR3(EXE,PPI,PPI) CALL BOSTR3(EXE,PKK,PKK) DO 30 I=1,4 30 QQ(I)=PPI(I)-PKK(I) C QQ transverse to PKS PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) DO 31 I=1,4 31 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD C AMPLITUDE PRODPQ=PT(4)*QQ(4) PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3) PRODPN=PT(4)*PN(4) QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2) & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2 C A SIMPLE BREIT-WIGNER IS CHOSEN FOR K* RESONANCE cam FKS=ABS(BWIGS(AMX2,AMKST,GAMKST))**2 FKS=ABS(BWIGM(AMX2,AMKST,GAMKST,AMPI,AMKZ))**2 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC DO 40 I=1,3 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK C C HERE BEGIN THE K+-,PI0 DECAY ELSEIF(JKST.EQ.20)THEN C ====================== C MASS OF (REAL/VIRTUAL) K* AMS1=(AMPIZ+AMK)**2 AMS2=(AMTAU-AMNUTA)**2 C FLAT PHASE SPACE C AMX2=AMS1+ RR1(1)*(AMS2-AMS1) C AMX=SQRT(AMX2) C PHSPAC=PHSPAC*(AMS2-AMS1) C PHASE SPACE WITH SAMPLING FOR K* RESONANCE ALP1=ATAN((AMS1-AMKST**2)/AMKST/GAMKST) ALP2=ATAN((AMS2-AMKST**2)/AMKST/GAMKST) ALP=ALP1+RR1(1)*(ALP2-ALP1) AMX2=AMKST**2+AMKST*GAMKST*TAN(ALP) AMX=SQRT(AMX2) PHSPAC=PHSPAC*((AMX2-AMKST**2)**2+(AMKST*GAMKST)**2) & /(AMKST*GAMKST) PHSPAC=PHSPAC*(ALP2-ALP1) C C TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA)) C KAON* MOMENTUM PKS(1)=0 PKS(2)=0 PKS(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) PKS(3)=-PN(3) PHSPAC=PHSPAC*(4*PI)*(2*PKS(3)/AMTAU) C CAM ENPI=( AMX**2+AMPIZ**2-AMK**2 ) / ( 2*AMX ) PPPI=SQRT((ENPI-AMPIZ)*(ENPI+AMPIZ)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) C NEUTRAL PI MOMENTUM IN K* REST FRAME CALL SPHERA(PPPI,PPI) PPI(4)=ENPI C CHARGED KAON MOMENTUM IN K* REST FRAME DO 50 I=1,3 50 PKK(I)=-PPI(I) PKK(4)=( AMX**2+AMK**2-AMPIZ**2 ) / ( 2*AMX ) EXE=(PKS(4)+PKS(3))/AMX C PION AND K BOOSTED FROM K* REST FRAME TO TAU REST FRAME CALL BOSTR3(EXE,PPI,PPI) CALL BOSTR3(EXE,PKK,PKK) DO 60 I=1,4 60 QQ(I)=PKK(I)-PPI(I) C QQ transverse to PKS PKSD =PKS(4)*PKS(4)-PKS(3)*PKS(3)-PKS(2)*PKS(2)-PKS(1)*PKS(1) QQPKS=PKS(4)* QQ(4)-PKS(3)* QQ(3)-PKS(2)* QQ(2)-PKS(1)* QQ(1) DO 61 I=1,4 61 QQ(I)=QQ(I)-PKS(I)*QQPKS/PKSD C AMPLITUDE PRODPQ=PT(4)*QQ(4) PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3) PRODPN=PT(4)*PN(4) QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2) & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2 C A SIMPLE BREIT-WIGNER IS CHOSEN FOR THE K* RESONANCE cam FKS=ABS(BWIGS(AMX2,AMKST,GAMKST))**2 FKS=ABS(BWIGM(AMX2,AMKST,GAMKST,AMK,AMPIZ))**2 AMPLIT=(GFERMI*SCABIB)**2*BRAK*2*FKS DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC DO 70 I=1,3 70 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK ENDIF RETURN END SUBROUTINE DPHNPI(DGAMT,HV,PN,PR,PPI,JNPI) C ---------------------------------------------------------------------- C IT SIMULATES MULTIPI DECAY IN TAU REST FRAME WITH C Z-AXIS OPPOSITE TO NEUTRINO MOMENTUM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 C double precision PN(4),PR(4),PPI(4,9),HV(4) double precision PV(5,9),PT(4),UE(3),BE(3) double precision RRR(9),RORD(9),RR1(1) double precision dpar(8) C DATA PI /3.141592653589793238462643/ DATA DPAR/2.,5.,15.,60.,250.,1500.,1.2E4,1.2E5/ C C PAWT(A,B,C)=SQRT((A**2-(B+C)**2)*(A**2-(B-C)**2))/(2.*A) PAWT(A,B,C)=SQRT(MAX(0.,(A**2-(B+C)**2)*(A**2-(B-C)**2)))/(2.*A) C AMPIK(I,J)=DCDMAS(IDFFIN(I,J)) C C C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C C MASS OF VIRTUAL W ND=MULPIK(JNPI) PS=0. PHSPAC = 1./2.**5 /PI**2 DO 4 I=1,ND 4 PS =PS+AMPIK(I,JNPI) CALL RANMAR(RR1,1) AMS1=PS**2 AMS2=(AMTAU-AMNUTA)**2 C C AMX2=AMS1+ RR1(1)*(AMS2-AMS1) AMX =SQRT(AMX2) AMW =AMX PHSPAC=PHSPAC * (AMS2-AMS1) C C TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX2) PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA)) C W MOMENTUM PR(1)=0 PR(2)=0 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX2) PR(3)=-PN(3) PHSPAC=PHSPAC * (4.*PI) * (2.*PR(3)/AMTAU) C C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971) C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985) C PXQ=AMTAU*PR(4) PXN=AMTAU*PN(4) QXN=PR(4)*PN(4)-PR(1)*PN(1)-PR(2)*PN(2)-PR(3)*PN(3) BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AMX2*PXN) & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AMX2 CAM Assume neutrino mass=0. and sum over final polarisation C BRAK= 2*(AMTAU**2-AMX2) * (AMTAU**2+2.*AMX2) AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AMX2*SIGEE(AMX2,JNPI) DGAMT=1./(2.*AMTAU)*AMPLIT*PHSPAC C C ISOTROPIC W DECAY IN W REST FRAME PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4) PHSMAX = 1./dpar(nd-2) DO 200 I=1,4 200 PV(I,1)=PR(I) PV(5,1)=AMW PV(5,ND)=AMPIK(ND,JNPI) C COMPUTE MAX. PHASE SPACE FACTOR PMAX=AMW-PS+AMPIK(ND,JNPI) PMIN=.0 DO 220 IL=ND-1,1,-1 PMAX=PMAX+AMPIK(IL,JNPI) PMIN=PMIN+AMPIK(IL+1,JNPI) 220 PHSMAX=PHSMAX*PAWT(PMAX,PMIN,AMPIK(IL,JNPI)) CAM GENERATE ND-2 EFFECTIVE MASSES (cf LUDECY) PHSPAC = 1./2.**(6*ND-7) /PI**(3*ND-4) 240 RORD(1)=1. CALL RANMAR(RRR,ND-1) DO 260 IL=2,ND-1 RSAV=RRR(IL) DO 250 JL=IL-1,1,-1 IF(RSAV.LE.RORD(JL)) GOTO 260 250 RORD(JL+1)=RORD(JL) 260 RORD(JL+1)=RSAV RORD(ND)=0. PHS=1. DO 270 IL=ND-1,1,-1 PV(5,IL)=PV(5,IL+1)+AMPIK(IL,JNPI) & +(RORD(IL)-RORD(IL+1))*(PV(5,1)-PS) 270 PHS=PHS*PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI)) RN = RRR(1) IF(PHS.LT.RN*PHSMAX) GOTO 240 C...PERFORM SUCCESSIVE TWO-PARTICLE DECAYS IN RESPECTIVE CM FRAME 280 DO 300 IL=1,ND-1 PA=PAWT(PV(5,IL),PV(5,IL+1),AMPIK(IL,JNPI)) CALL RANMAR(RRR,2) UE(3)=2.*RRR(1)-1. PHI=2.*PI*RRR(2) UE(1)=SQRT(1.-UE(3)**2)*COS(PHI) UE(2)=SQRT(1.-UE(3)**2)*SIN(PHI) DO 290 J=1,3 PPI(J,IL)=PA*UE(J) 290 PV(J,IL+1)=-PA*UE(J) PPI(4,IL)=SQRT(PA**2+AMPIK(IL,JNPI)**2) PV(4,IL+1)=SQRT(PA**2+PV(5,IL+1)**2) PHSPAC=PHSPAC *(4.*PI)*(2.*PA/PV(5,IL)) 300 CONTINUE C...LORENTZ TRANSFORM DECAY PRODUCTS TO TAU FRAME DO 310 J=1,4 310 PPI(J,ND)=PV(J,ND) DO 340 IL=ND-1,1,-1 DO 320 J=1,3 320 BE(J)=PV(J,IL)/PV(4,IL) GAM=PV(4,IL)/PV(5,IL) DO 340 I=IL,ND BEP=BE(1)*PPI(1,I)+BE(2)*PPI(2,I)+BE(3)*PPI(3,I) DO 330 J=1,3 330 PPI(J,I)=PPI(J,I)+GAM*(GAM*BEP/(1.+GAM)+PPI(4,I))*BE(J) PPI(4,I)=GAM*(PPI(4,I)+BEP) 340 CONTINUE C HV(4)=1. HV(3)=0. HV(2)=0. HV(1)=0. RETURN END double precision FUNCTION SIGEE(Q2,JNP) C ---------------------------------------------------------------------- C e+e- cross section in the (1.GEV2,AMTAU**2) region C normalised to sig0 = 4/3 pi alfa2 C used in matrix element for multipion tau decays C cf YS.Tsai Phys.Rev D4 ,2821(1971) C F.Gilman et al Phys.Rev D17,1846(1978) C C.Kiesling, to be pub. in High Energy e+e- Physics (1988) C DATSIG(*,1) = e+e- -> pi+pi-2pi0 C DATSIG(*,2) = e+e- -> 2pi+2pi- C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al) C (Phys Lett 78B,623(1978) C DATSIG(*,5) = e+e- -> 6pi C C 4- and 6-pion cross sections from data C 5-pion contribution related to 4-pion cross section C C Called by DPHNPI C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST double precision DATSIG(17,6) C DATA DATSIG/ 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40, 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90, 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90, 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10, 5 17*.0, 6 17*.0, 7 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25, 8 17*.0/ DATA SIG0 / 86.8 / DATA PI /3.141592653589793238462643/ DATA INIT / 0 / save init, jnpi, ampi2, fpi, datsig save s,fact,s2,t,t2 C JNPI=JNP IF(JNP.EQ.4) JNPI=3 IF(JNP.EQ.3) JNPI=4 IF(INIT.EQ.0) THEN INIT=1 AMPI2=AMPI**2 FPI = .943*AMPI DO 100 I=1,17 DATSIG(I,2) = DATSIG(I,2)/2. DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2) S = 1.025+(I-1)*.05 FACT=0. S2=S**2 DO 200 J=1,17 T= 1.025+(J-1)*.05 IF(T . GT. S-AMPI ) GO TO 201 T2=T**2 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1)) 200 DATSIG(I,3) = DATSIG(I,3) + FACT 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2 DATSIG(I,4) = DATSIG(I,3) DATSIG(I,6) = DATSIG(I,5) 100 CONTINUE C WRITE(6,1000) DATSIG 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/ % (17F7.2/)) ENDIF Q=SQRT(Q2) QMIN=1. IF(Q.LT.QMIN) THEN SIGEE=DATSIG(1,JNPI)+ & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05 ELSEIF(Q.LT.1.8) THEN DO 1 I=1,16 QMAX = QMIN + .05 IF(Q.LT.QMAX) GO TO 2 QMIN = QMIN + .05 1 CONTINUE 2 SIGEE=DATSIG(I,JNPI)+ & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05 ELSEIF(Q.GT.1.8) THEN SIGEE=DATSIG(17,JNPI)+ & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05 ENDIF IF(SIGEE.LT..0) SIGEE=0. C SIGEE = SIGEE/(6.*PI**2*SIG0) C RETURN END double precision FUNCTION SIGOLD(Q2,JNPI) C ---------------------------------------------------------------------- C e+e- cross section in the (1.GEV2,AMTAU**2) region C normalised to sig0 = 4/3 pi alfa2 C used in matrix element for multipion tau decays C cf YS.Tsai Phys.Rev D4 ,2821(1971) C F.Gilman et al Phys.Rev D17,1846(1978) C C.Kiesling, to be pub. in High Energy e+e- Physics (1988) C DATSIG(*,1) = e+e- -> pi+pi-2pi0 C DATSIG(*,2) = e+e- -> 2pi+2pi- C DATSIG(*,3) = 5-pion contribution (a la TN.Pham et al) C (Phys Lett 78B,623(1978) C DATSIG(*,4) = e+e- -> 6pi C C 4- and 6-pion cross sections from data C 5-pion contribution related to 4-pion cross section C C Called by DPHNPI C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST double precision DATSIG(17,4) C DATA DATSIG/ 1 7.40,12.00,16.15,21.25,24.90,29.55,34.15,37.40,37.85,37.40, 2 36.00,33.25,30.50,27.70,24.50,21.25,18.90, 3 1.24, 2.50, 3.70, 5.40, 7.45,10.75,14.50,18.20,22.30,28.90, 4 29.35,25.60,22.30,18.60,14.05,11.60, 9.10, 5 17*.0, 6 9*.0,.65,1.25,2.20,3.15,5.00,5.75,7.80,8.25/ DATA SIG0 / 86.8 / DATA PI /3.141592653589793238462643/ DATA INIT / 0 / save init, ampi2, fpi, datsig, s, fact, s2, t, t2 C IF(INIT.EQ.0) THEN INIT=1 AMPI2=AMPI**2 FPI = .943*AMPI DO 100 I=1,17 DATSIG(I,2) = DATSIG(I,2)/2. DATSIG(I,1) = DATSIG(I,1) + DATSIG(I,2) S = 1.025+(I-1)*.05 FACT=0. S2=S**2 DO 200 J=1,17 T= 1.025+(J-1)*.05 IF(T . GT. S-AMPI ) GO TO 201 T2=T**2 FACT=(T2/S2)**2*SQRT((S2-T2-AMPI2)**2-4.*T2*AMPI2)/S2 *2.*T*.05 FACT = FACT * (DATSIG(J,1)+DATSIG(J+1,1)) 200 DATSIG(I,3) = DATSIG(I,3) + FACT 201 DATSIG(I,3) = DATSIG(I,3) /(2*PI*FPI)**2 100 CONTINUE C WRITE(6,1000) DATSIG 1000 FORMAT(///1X,' EE SIGMA USED IN MULTIPI DECAYS'/ % (17F7.2/)) ENDIF Q=SQRT(Q2) QMIN=1. IF(Q.LT.QMIN) THEN SIGEE=DATSIG(1,JNPI)+ & (DATSIG(2,JNPI)-DATSIG(1,JNPI))*(Q-1.)/.05 ELSEIF(Q.LT.1.8) THEN DO 1 I=1,16 QMAX = QMIN + .05 IF(Q.LT.QMAX) GO TO 2 QMIN = QMIN + .05 1 CONTINUE 2 SIGEE=DATSIG(I,JNPI)+ & (DATSIG(I+1,JNPI)-DATSIG(I,JNPI)) * (Q-QMIN)/.05 ELSEIF(Q.GT.1.8) THEN SIGEE=DATSIG(17,JNPI)+ & (DATSIG(17,JNPI)-DATSIG(16,JNPI)) * (Q-1.8)/.05 ENDIF IF(SIGEE.LT..0) SIGEE=0. C SIGEE = SIGEE/(6.*PI**2*SIG0) SIGOLD=SIGEE C RETURN END SUBROUTINE DPHSPK(DGAMT,HV,PN,PAA,PNPI,JAA) C ---------------------------------------------------------------------- * IT SIMULATES THREE PI (K) DECAY IN THE TAU REST FRAME * Z-AXIS ALONG HADRONIC SYSTEM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 double precision HV(4),PN(4),PAA(4),PIM1(4), * PIM2(4),PIPL(4),PNPI(4,9) C MATRIX ELEMENT NUMBER: MNUM=JAA C TYPE OF THE GENERATION: KEYT=4 IF(JAA.EQ.7) KEYT=3 C --- MASSES OF THE DECAY PRODUCTS AMP1=DCDMAS(IDFFIN(1,JAA+NM4+NM5+NM6)) AMP2=DCDMAS(IDFFIN(2,JAA+NM4+NM5+NM6)) AMP3=DCDMAS(IDFFIN(3,JAA+NM4+NM5+NM6)) CALL $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMP1,PIM2,AMP2,PIPL,AMP3,KEYT,MNUM) DO I=1,4 PNPI(I,1)=PIM1(I) PNPI(I,2)=PIM2(I) PNPI(I,3)=PIPL(I) ENDDO END SUBROUTINE $ DPHTRE(DGAMT,HV,PN,PAA,PIM1,AMPA,PIM2,AMPB,PIPL,AMP3,KEYT,MNUM) C ---------------------------------------------------------------------- * IT SIMULATES A1 DECAY IN TAU REST FRAME WITH * Z-AXIS ALONG A1 MOMENTUM * it can be also used to generate K K pi and K pi pi tau decays. * INPUT PARAMETERS * KEYT - algorithm controlling switch * 2 - flat phase space PIM1 PIM2 symmetrized statistical factor 1/2 * 1 - like 1 but peaked around a1 and rho (two channels) masses. * 3 - peaked around omega, all particles different * other- flat phase space, all particles different * AMP1 - mass of first pi, etc. (1-3) * MNUM - matrix element type * 0 - a1 matrix element * 1-6 - matrix element for K pi pi, K K pi decay modes * 7 - pi- pi0 gamma matrix element C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) double precision PR(4) double precision RRR(5) DATA PI /3.141592653589793238462643/ DATA ICONT /0/ save icont XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z)) C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY C C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) PHSPAC=1./2**17/PI**8 C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C CALL RANMAR(RRR,5) RR=RRR(5) C CALL CHOICE(MNUM,RR,ICHAN,PROB1,PROB2,PROB3, $ AMRX,GAMRX,AMRA,GAMRA,AMRB,GAMRB) IF (ICHAN.EQ.1) THEN AMP1=AMPB AMP2=AMPA ELSEIF (ICHAN.EQ.2) THEN AMP1=AMPA AMP2=AMPB ELSE AMP1=AMPB AMP2=AMPA ENDIF CAM RR1=RRR(1) AMS1=(AMP1+AMP2+AMP3)**2 AMS2=(AMTAU-AMNUTA)**2 C phase space with sampling for a1 resonance ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) ALP=ALP1+RR1*(ALP2-ALP1) AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP) AM3 =SQRT(AM3SQ) PHSPAC=PHSPAC*((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) PHSPAC=PHSPAC*(ALP2-ALP1) C MASS OF (REAL/VIRTUAL) RHO - RR2=RRR(2) AMS1=(AMP2+AMP3)**2 AMS2=(AM3-AMP1)**2 IF (ICHAN.LE.2) THEN C phase space with sampling for rho resonance, ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA) ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA) ALP=ALP1+RR2*(ALP2-ALP1) AM2SQ =AMRA**2+AMRA*GAMRA*TAN(ALP) AM2 =SQRT(AM2SQ) C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER --------------- C PHSPAC=PHSPAC*(ALP2-ALP1) C PHSPAC=PHSPAC*((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA) C---------------------------------------------------------------------- ELSE C flat phase space; AM2SQ=AMS1+ RR2*(AMS2-AMS1) AM2 =SQRT(AM2SQ) PHF0=(AMS2-AMS1) ENDIF C rho restframe, define pipl and pim1 ENQ1=(AM2SQ-AMP2**2+AMP3**2)/(2*AM2) ENQ2=(AM2SQ+AMP2**2-AMP3**2)/(2*AM2) PPI= ENQ1**2-AMP3**2 PPPI=SQRT(ABS(ENQ1**2-AMP3**2)) C --- this part of jacobian will be recovered later PHF1=(4*PI)*(2*PPPI/AM2) C pi minus momentum in rho rest frame CALL SPHERA(PPPI,PIPL) PIPL(4)=ENQ1 C pi0 1 momentum in rho rest frame DO 30 I=1,3 30 PIM1(I)=-PIPL(I) PIM1(4)=ENQ2 C a1 rest frame, define pim2 * RHO MOMENTUM PR(1)=0 PR(2)=0 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP1**2) PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) PPI = PR(4)**2-AM2**2 * PI0 2 MOMENTUM PIM2(1)=0 PIM2(2)=0 PIM2(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP1**2) PIM2(3)=-PR(3) PHF2=(4*PI)*(2*PR(3)/AM3) C old pions boosted from rho rest frame to a1 rest frame EXE=(PR(4)+PR(3))/AM2 CALL BOSTR3(EXE,PIPL,PIPL) CALL BOSTR3(EXE,PIM1,PIM1) RR3=RRR(3) RR4=RRR(4) THET =ACOS(-1.+2*RR3) PHI = 2*PI*RR4 CALL ROTPOL(THET,PHI,PIPL) CALL ROTPOL(THET,PHI,PIM1) CALL ROTPOL(THET,PHI,PIM2) CALL ROTPOL(THET,PHI,PR) C * NOW TO THE TAU REST FRAME, DEFINE A1 AND NEUTRINO MOMENTA * A1 MOMENTUM PAA(1)=0 PAA(2)=0 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM3**2) PAA(3)= SQRT(ABS(PAA(4)**2-AM3**2)) PPI = PAA(4)**2-AM3**2 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU) * TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM3**2) PN(3)=-PAA(3) C HERE WE CORRECT FOR THE JACOBIANS OF THE TWO CHAINS C ---FIRST CHANNEL ------- PIM1+PIPL AMS1=(AMP2+AMP3)**2 AMS2=(AM3-AMP1)**2 ALP1=ATAN((AMS1-AMRA**2)/AMRA/GAMRA) ALP2=ATAN((AMS2-AMRA**2)/AMRA/GAMRA) XPRO = (PIM1(3)+PIPL(3))**2 $ +(PIM1(2)+PIPL(2))**2+(PIM1(1)+PIPL(1))**2 AM2SQ=-XPRO+(PIM1(4)+PIPL(4))**2 C JACOBIAN OF SPEEDING FF1 = ((AM2SQ-AMRA**2)**2+(AMRA*GAMRA)**2)/(AMRA*GAMRA) FF1 =FF1 *(ALP2-ALP1) C LAMBDA OF RHO DECAY GG1 = (4*PI)*(XLAM(AM2SQ,AMP2**2,AMP3**2)/AM2SQ) C LAMBDA OF A1 DECAY GG1 =GG1 *(4*PI)*SQRT(4*XPRO/AM3SQ) XJAJE=GG1*(AMS2-AMS1) C ---SECOND CHANNEL ------ PIM2+PIPL AMS1=(AMP1+AMP3)**2 AMS2=(AM3-AMP2)**2 ALP1=ATAN((AMS1-AMRB**2)/AMRB/GAMRB) ALP2=ATAN((AMS2-AMRB**2)/AMRB/GAMRB) XPRO = (PIM2(3)+PIPL(3))**2 $ +(PIM2(2)+PIPL(2))**2+(PIM2(1)+PIPL(1))**2 AM2SQ=-XPRO+(PIM2(4)+PIPL(4))**2 FF2 = ((AM2SQ-AMRB**2)**2+(AMRB*GAMRB)**2)/(AMRB*GAMRB) FF2 =FF2 *(ALP2-ALP1) GG2 = (4*PI)*(XLAM(AM2SQ,AMP1**2,AMP3**2)/AM2SQ) GG2 =GG2 *(4*PI)*SQRT(4*XPRO/AM3SQ) XJADW=GG2*(AMS2-AMS1) C A1=0.0 A2=0.0 A3=0.0 XJAC1=FF1*GG1 XJAC2=FF2*GG2 IF (ICHAN.EQ.2) THEN XJAC3=XJADW ELSE XJAC3=XJAJE ENDIF IF (XJAC1.NE.0.0) A1=PROB1/XJAC1 IF (XJAC2.NE.0.0) A2=PROB2/XJAC2 IF (XJAC3.NE.0.0) A3=PROB3/XJAC3 C IF (A1+A2+A3.NE.0.0) THEN PHSPAC=PHSPAC/(A1+A2+A3) ELSE PHSPAC=0.0 ENDIF IF(ICHAN.EQ.2) THEN DO 70 I=1,4 X=PIM1(I) PIM1(I)=PIM2(I) 70 PIM2(I)=X ENDIF * ALL PIONS BOOSTED FROM A1 REST FRAME TO TAU REST FRAME * Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM EXE=(PAA(4)+PAA(3))/AM3 CALL BOSTR3(EXE,PIPL,PIPL) CALL BOSTR3(EXE,PIM1,PIM1) CALL BOSTR3(EXE,PIM2,PIM2) CALL BOSTR3(EXE,PR,PR) C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE IF (MNUM.EQ.8) THEN CALL DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) C ELSEIF (MNUM.EQ.0) THEN C CALL DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) ELSE CALL DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) ENDIF IF (KEYT.EQ.1.OR.KEYT.EQ.2) THEN C THE STATISTICAL FACTOR FOR IDENTICAL PI-S IS CANCELLED WITH C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 Cam PHSPAC=PHSPAC*2.0 Cam PHSPAC=PHSPAC/2. ENDIF DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC END SUBROUTINE DAMPAA(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) C ---------------------------------------------------------------------- * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR * FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI. * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT * THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS. C C called by : DPHSAA C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON /TESTA1/ KEYA1 double precision HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4) double precision PAA(4),VEC1(4),VEC2(4) double precision PIVEC(4),PIAKS(4),HVM(4) double complex BWIGN,HADCUR(4),FPIK DATA ICONT /1/ save icont C * F CONSTANTS FOR A1, A1-RHO-PI, AND RHO-PI-PI * DATA FPI /93.3E-3/ * THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM) C * FOUR MOMENTUM OF A1 DO 10 I=1,4 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I) * MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) XMRO1 =SQRT(ABS((PIPL(4)+PIM1(4))**2-(PIPL(1)+PIM1(1))**2 $ -(PIPL(2)+PIM1(2))**2-(PIPL(3)+PIM1(3))**2)) XMRO2 =SQRT(ABS((PIPL(4)+PIM2(4))**2-(PIPL(1)+PIM2(1))**2 $ -(PIPL(2)+PIM2(2))**2-(PIPL(3)+PIM2(3))**2)) * ELEMENTS OF HADRON CURRENT PROD1 =PAA(4)*(PIM1(4)-PIPL(4))-PAA(1)*(PIM1(1)-PIPL(1)) $ -PAA(2)*(PIM1(2)-PIPL(2))-PAA(3)*(PIM1(3)-PIPL(3)) PROD2 =PAA(4)*(PIM2(4)-PIPL(4))-PAA(1)*(PIM2(1)-PIPL(1)) $ -PAA(2)*(PIM2(2)-PIPL(2))-PAA(3)*(PIM2(3)-PIPL(3)) DO 40 I=1,4 VEC1(I)= PIM1(I)-PIPL(I) -PAA(I)*PROD1/XMAA**2 40 VEC2(I)= PIM2(I)-PIPL(I) -PAA(I)*PROD2/XMAA**2 * HADRON CURRENT SATURATED WITH A1 AND RHO RESONANCES IF (KEYA1.EQ.1) THEN FA1=9.87 FAROPI=1.0 FRO2PI=1.0 FNORM=FA1/SQRT(2.)*FAROPI*FRO2PI DO 45 I=1,4 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMA1) $ *(CMPLX(VEC1(I))*AMRO**2*BWIGN(XMRO1,AMRO,GAMRO) $ +CMPLX(VEC2(I))*AMRO**2*BWIGN(XMRO2,AMRO,GAMRO)) 45 CONTINUE ELSE FNORM=2.0*SQRT(2.)/3.0/FPI GAMAX=GAMA1*GFUN(XMAA**2)/GFUN(AMA1**2) DO 46 I=1,4 HADCUR(I)= CMPLX(FNORM) *AMA1**2*BWIGN(XMAA,AMA1,GAMAX) $ *(CMPLX(VEC1(I))*FPIK(XMRO1) $ +CMPLX(VEC2(I))*FPIK(XMRO2)) 46 CONTINUE ENDIF C * CALCULATE PI-VECTORS: VECTOR AND AXIAL CALL CLVEC(HADCUR,PN,PIVEC) CALL CLAXI(HADCUR,PN,PIAKS) CALL CLNUT(HADCUR,BRAKM,HVM) * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM AMPLIT=(GFERMI*CCABIB)**2*BRAK/2. C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 C POLARIMETER VECTOR IN TAU REST FRAME DO 90 I=1,3 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL HV(I)=-HV(I)/BRAK 90 CONTINUE END double precision FUNCTION GFUN(QKWA) C **************************************************************** C G-FUNCTION USED TO INRODUCE ENERGY DEPENDENCE IN A1 WIDTH C **************************************************************** IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C IF (QKWA.LT.(AMRO+AMPI)**2) THEN GFUN=4.1*(QKWA-9*AMPIZ**2)**3 $ *(1.-3.3*(QKWA-9*AMPIZ**2)+5.8*(QKWA-9*AMPIZ**2)**2) ELSE GFUN=QKWA*(1.623+10.38/QKWA-9.32/QKWA**2+0.65/QKWA**3) ENDIF END double complex FUNCTION BWIGS(S,M,G) C ********************************************************** C P-WAVE BREIT-WIGNER FOR K* C ********************************************************** IMPLICIT double precision (A-H,O-Z) double precision S,M,G double precision PI,PIM,QS,QM,W,GS,MK SAVE PI,PIM,MK DATA INIT /0/ P(A,B,C)=SQRT(ABS(ABS(((A+B-C)**2-4.*A*B)/4./A) $ +(((A+B-C)**2-4.*A*B)/4./A))/2.0) save init C ------------ PARAMETERS -------------------- IF (INIT.EQ.0) THEN INIT=1 PI=3.141592654 PIM=.139 MK=.493667 C ------- BREIT-WIGNER ----------------------- ENDIF IF (S.GT.(PIM+MK)**2) THEN QS=P(S,PIM**2,MK**2) QM=P(M**2,PIM**2,MK**2) W=SQRT(S) GS=G*(M/W)*(QS/QM)**3 ELSE GS=0.0 ENDIF BWIGS=M**2/CMPLX(M**2-S,-M*GS) RETURN END double complex FUNCTION BWIG(S,M,G) C ********************************************************** C P-WAVE BREIT-WIGNER FOR RHO C ********************************************************** IMPLICIT double precision (A-H,O-Z) double precision S,M,G double precision PI,PIM,QS,QM,W,GS,radicand DATA INIT /0/ SAVE PI, PIM save init C ------------ PARAMETERS -------------------- IF (INIT.EQ.0) THEN INIT=1 PI=3.141592654 PIM=.139 C ------- BREIT-WIGNER ----------------------- ENDIF IF (S.GT.4.*PIM**2) THEN radicand = ABS(ABS(S/4.-PIM**2)+(S/4.-PIM**2))/2.0 QS=SQRT(radicand) radicand = M**2/4.-PIM**2 QM=SQRT(radicand) W=SQRT(S) GS=G*(M/W)*(QS/QM)**3 ELSE GS=0.0 ENDIF BWIG=M**2/CMPLX(M**2-S,-M*GS) RETURN END double complex FUNCTION FPIK(W) C ********************************************************** C PION FORM FACTOR C ********************************************************** IMPLICIT double precision (A-H,O-Z) double complex BWIG double precision ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W SAVE PI,PIM,ROM,ROG,ROM1,ROG1,BETA1 EXTERNAL BWIG DATA INIT /0/ C C ------------ PARAMETERS -------------------- IF (INIT.EQ.0 ) THEN INIT=1 PI=3.141592654 PIM=.140 ROM=0.773 ROG=0.145 ROM1=1.370 ROG1=0.510 BETA1=-0.145 ENDIF C ----------------------------------------------- S=W**2 FPIK= (BWIG(S,ROM,ROG)+BETA1*BWIG(S,ROM1,ROG1)) & /(1+BETA1) RETURN END double precision FUNCTION FPIRHO(W) C ********************************************************** C SQUARE OF PION FORM FACTOR C ********************************************************** IMPLICIT double precision (A-H,O-Z) double precision :: w double complex FPIK FPIRHO=ABS(FPIK(W))**2 END SUBROUTINE CLVEC(HJ,PN,PIV) C ---------------------------------------------------------------------- * CALCULATES THE "VECTOR TYPE" PI-VECTOR PIV * NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS C C called by : DAMPAA C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PIV(4),PN(4) double complex HJ(4),HN C HN= HJ(4)*CMPLX(PN(4))-HJ(3)*CMPLX(PN(3)) HH= REAL(HJ(4)*CONJG(HJ(4))-HJ(3)*CONJG(HJ(3)) $ -HJ(2)*CONJG(HJ(2))-HJ(1)*CONJG(HJ(1))) DO 10 I=1,4 10 PIV(I)=4.*REAL(HN*CONJG(HJ(I)))-2.*HH*PN(I) RETURN END SUBROUTINE CLAXI(HJ,PN,PIA) C ---------------------------------------------------------------------- * CALCULATES THE "AXIAL TYPE" PI-VECTOR PIA * NOTE THAT THE NEUTRINO MOM. PN IS ASSUMED TO BE ALONG Z-AXIS C SIGN is chosen +/- for decay of TAU +/- respectively C called by : DAMPAA, CLNUT C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / IDFC / IDFF double precision PIA(4),PN(4) double complex HJ(4),HJC(4) C DET2(I,J)=AIMAG(HJ(I)*HJC(J)-HJ(J)*HJC(I)) C -- here was an error (ZW, 21.11.1991) DET2(I,J)=AIMAG(HJC(I)*HJ(J)-HJC(J)*HJ(I)) C -- it was affecting sign of A_LR asymmetry in a1 decay. C -- note also collision of notation of gamma_va as defined in C -- TAUOLA paper and J.H. Kuhn and Santamaria Z. Phys C 48 (1990) 445 * ----------------------------------- IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN SIGN= IDFF/ABS(IDFF) ELSEIF (KTOM.EQ.2) THEN SIGN=-IDFF/ABS(IDFF) ELSE PRINT *, 'STOP IN CLAXI: KTOM=',KTOM STOP ENDIF C DO 10 I=1,4 10 HJC(I)=CONJG(HJ(I)) PIA(1)= -2.*PN(3)*DET2(2,4)+2.*PN(4)*DET2(2,3) PIA(2)= -2.*PN(4)*DET2(1,3)+2.*PN(3)*DET2(1,4) PIA(3)= 2.*PN(4)*DET2(1,2) PIA(4)= 2.*PN(3)*DET2(1,2) C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN DO 20 I=1,4 20 PIA(I)=PIA(I)*SIGN END SUBROUTINE CLNUT(HJ,B,HV) C ---------------------------------------------------------------------- * CALCULATES THE CONTRIBUTION BY NEUTRINO MASS * NOTE THE TAU IS ASSUMED TO BE AT REST C C called by : DAMPAA C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double complex HJ(4) double precision HV(4),P(4) DATA P /3*0.,1.0/ C CALL CLAXI(HJ,P,HV) B=REAL( HJ(4)*AIMAG(HJ(4)) - HJ(3)*AIMAG(HJ(3)) & - HJ(2)*AIMAG(HJ(2)) - HJ(1)*AIMAG(HJ(1)) ) RETURN END SUBROUTINE DAMPOG(PT,PN,PIM1,PIM2,PIPL,AMPLIT,HV) C ---------------------------------------------------------------------- * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR * FOR TAU DECAY INTO A1, A1 DECAYS NEXT INTO RHO+PI AND RHO INTO PI+PI. * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT * THE ROUTINE IS WRITEN FOR ZERO NEUTRINO MASS. C C called by : DPHTRE C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON /TESTA1/ KEYA1 double precision HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIPL(4) double precision PAA(4),VEC1(4),VEC2(4) double precision PIVEC(4),PIAKS(4),HVM(4) double complex BWIGN,HADCUR(4),FNORM,FORMOM DATA ICONT /1/ save icont * THIS INLINE FUNCT. CALCULATES THE SCALAR PART OF THE PROPAGATOR !BWIGN(XM,AM,GAMMA)=1./CMPLX(XM**2-AM**2,GAMMA*AM) C * FOUR MOMENTUM OF A1 DO 10 I=1,4 VEC1(I)=0.0 VEC2(I)=0.0 HV(I) =0.0 10 PAA(I)=PIM1(I)+PIM2(I)+PIPL(I) VEC1(1)=1.0 * MASSES OF A1, AND OF TWO PI-PAIRS WHICH MAY FORM RHO XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) XMOM =SQRT(ABS( (PIM2(4)+PIPL(4))**2-(PIM2(3)+PIPL(3))**2 $ -(PIM2(2)+PIPL(2))**2-(PIM2(1)+PIPL(1))**2 )) XMRO2 =(PIPL(1))**2 +(PIPL(2))**2 +(PIPL(3))**2 * ELEMENTS OF HADRON CURRENT PROD1 =VEC1(1)*PIPL(1) PROD2 =VEC2(2)*PIPL(2) P12 =PIM1(4)*PIM2(4)-PIM1(1)*PIM2(1) $ -PIM1(2)*PIM2(2)-PIM1(3)*PIM2(3) P1PL =PIM1(4)*PIPL(4)-PIM1(1)*PIPL(1) $ -PIM1(2)*PIPL(2)-PIM1(3)*PIPL(3) P2PL =PIPL(4)*PIM2(4)-PIPL(1)*PIM2(1) $ -PIPL(2)*PIM2(2)-PIPL(3)*PIM2(3) DO 40 I=1,3 VEC1(I)= (VEC1(I)-PROD1/XMRO2*PIPL(I)) 40 CONTINUE GNORM=SQRT(VEC1(1)**2+VEC1(2)**2+VEC1(3)**2) DO 41 I=1,3 VEC1(I)= VEC1(I)/GNORM 41 CONTINUE VEC2(1)=(VEC1(2)*PIPL(3)-VEC1(3)*PIPL(2))/SQRT(XMRO2) VEC2(2)=(VEC1(3)*PIPL(1)-VEC1(1)*PIPL(3))/SQRT(XMRO2) VEC2(3)=(VEC1(1)*PIPL(2)-VEC1(2)*PIPL(1))/SQRT(XMRO2) P1VEC1 =PIM1(4)*VEC1(4)-PIM1(1)*VEC1(1) $ -PIM1(2)*VEC1(2)-PIM1(3)*VEC1(3) P2VEC1 =VEC1(4)*PIM2(4)-VEC1(1)*PIM2(1) $ -VEC1(2)*PIM2(2)-VEC1(3)*PIM2(3) P1VEC2 =PIM1(4)*VEC2(4)-PIM1(1)*VEC2(1) $ -PIM1(2)*VEC2(2)-PIM1(3)*VEC2(3) P2VEC2 =VEC2(4)*PIM2(4)-VEC2(1)*PIM2(1) $ -VEC2(2)*PIM2(2)-VEC2(3)*PIM2(3) * HADRON CURRENT FNORM=FORMOM(XMAA,XMOM) BRAK=0.0 DO 120 JJ=1,2 DO 45 I=1,4 IF (JJ.EQ.1) THEN HADCUR(I) = FNORM *( $ VEC1(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL)) $ -PIM2(I)*(P2VEC1*P1PL-P1VEC1*P2PL) $ +PIPL(I)*(P2VEC1*P12 -P1VEC1*(AMPI**2+P2PL)) ) ELSE HADCUR(I) = FNORM *( $ VEC2(I)*(AMPI**2*P1PL-P2PL*(P12-P1PL)) $ -PIM2(I)*(P2VEC2*P1PL-P1VEC2*P2PL) $ +PIPL(I)*(P2VEC2*P12 -P1VEC2*(AMPI**2+P2PL)) ) ENDIF 45 CONTINUE C * CALCULATE PI-VECTORS: VECTOR AND AXIAL CALL CLVEC(HADCUR,PN,PIVEC) CALL CLAXI(HADCUR,PN,PIAKS) CALL CLNUT(HADCUR,BRAKM,HVM) * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME BRAK=BRAK+(GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM DO 90 I=1,3 HV(I)=HV(I)-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) 90 CONTINUE C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL 120 CONTINUE AMPLIT=(GFERMI*CCABIB)**2*BRAK/2. C THE STATISTICAL FACTOR FOR IDENTICAL PI-S WAS CANCELLED WITH C TWO, FOR TWO MODES OF A1 DECAY NAMELLY PI+PI-PI- AND PI-PI0PI0 C POLARIMETER VECTOR IN TAU REST FRAME DO 91 I=1,3 HV(I)=-HV(I)/BRAK 91 CONTINUE END SUBROUTINE DAMPPK(MNUM,PT,PN,PIM1,PIM2,PIM3,AMPLIT,HV) C ---------------------------------------------------------------------- * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR * FOR TAU DECAY INTO K K pi, K pi pi. * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT C MNUM DECAY MODE IDENTIFIER. C C called by : DPHTRE C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PIM1(4),PIM2(4),PIM3(4) double precision PAA(4),VEC1(4),VEC2(4),VEC3(4),VEC4(4),VEC5(4) double precision PIVEC(4),PIAKS(4),HVM(4) double precision FNORM(0:7),COEF(1:5,0:7) double complex HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5,UROJ EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5 SAVE UROJ,DWAPI0,FNORM,COEF DATA PI /3.141592653589793238462643/ DATA ICONT /0/ save icont C DATA FPI /93.3E-3/ IF (ICONT.EQ.0) THEN ICONT=1 UROJ=CMPLX(0.0,1.0) DWAPI0=SQRT(2.0) FNORM(0)=CCABIB/FPI FNORM(1)=CCABIB/FPI FNORM(2)=CCABIB/FPI FNORM(3)=CCABIB/FPI FNORM(4)=SCABIB/FPI/DWAPI0 FNORM(5)=SCABIB/FPI FNORM(6)=SCABIB/FPI FNORM(7)=CCABIB/FPI C COEF(1,0)= 2.0*SQRT(2.)/3.0 COEF(2,0)=-2.0*SQRT(2.)/3.0 COEF(3,0)= 0.0 COEF(4,0)= FPI COEF(5,0)= 0.0 C COEF(1,1)=-SQRT(2.)/3.0 COEF(2,1)= SQRT(2.)/3.0 COEF(3,1)= 0.0 COEF(4,1)= FPI COEF(5,1)= SQRT(2.) C COEF(1,2)=-SQRT(2.)/3.0 COEF(2,2)= SQRT(2.)/3.0 COEF(3,2)= 0.0 COEF(4,2)= 0.0 COEF(5,2)=-SQRT(2.) C COEF(1,3)= 0.0 COEF(2,3)=-1.0 COEF(3,3)= 0.0 COEF(4,3)= 0.0 COEF(5,3)= 0.0 C COEF(1,4)= 1.0/SQRT(2.)/3.0 COEF(2,4)=-1.0/SQRT(2.)/3.0 COEF(3,4)= 0.0 COEF(4,4)= 0.0 COEF(5,4)= 0.0 C COEF(1,5)=-SQRT(2.)/3.0 COEF(2,5)= SQRT(2.)/3.0 COEF(3,5)= 0.0 COEF(4,5)= 0.0 COEF(5,5)=-SQRT(2.) C COEF(1,6)= 0.0 COEF(2,6)=-1.0 COEF(3,6)= 0.0 COEF(4,6)= 0.0 COEF(5,6)=-2.0 C COEF(1,7)= 0.0 COEF(2,7)= 0.0 COEF(3,7)= 0.0 COEF(4,7)= 0.0 COEF(5,7)=-SQRT(2.0/3.0) C ENDIF C DO 10 I=1,4 10 PAA(I)=PIM1(I)+PIM2(I)+PIM3(I) XMAA =SQRT(ABS(PAA(4)**2-PAA(3)**2-PAA(2)**2-PAA(1)**2)) XMRO1 =SQRT(ABS((PIM3(4)+PIM2(4))**2-(PIM3(1)+PIM2(1))**2 $ -(PIM3(2)+PIM2(2))**2-(PIM3(3)+PIM2(3))**2)) XMRO2 =SQRT(ABS((PIM3(4)+PIM1(4))**2-(PIM3(1)+PIM1(1))**2 $ -(PIM3(2)+PIM1(2))**2-(PIM3(3)+PIM1(3))**2)) XMRO3 =SQRT(ABS((PIM1(4)+PIM2(4))**2-(PIM1(1)+PIM2(1))**2 $ -(PIM1(2)+PIM2(2))**2-(PIM1(3)+PIM2(3))**2)) * ELEMENTS OF HADRON CURRENT PROD1 =PAA(4)*(PIM2(4)-PIM3(4))-PAA(1)*(PIM2(1)-PIM3(1)) $ -PAA(2)*(PIM2(2)-PIM3(2))-PAA(3)*(PIM2(3)-PIM3(3)) PROD2 =PAA(4)*(PIM3(4)-PIM1(4))-PAA(1)*(PIM3(1)-PIM1(1)) $ -PAA(2)*(PIM3(2)-PIM1(2))-PAA(3)*(PIM3(3)-PIM1(3)) PROD3 =PAA(4)*(PIM1(4)-PIM2(4))-PAA(1)*(PIM1(1)-PIM2(1)) $ -PAA(2)*(PIM1(2)-PIM2(2))-PAA(3)*(PIM1(3)-PIM2(3)) DO 40 I=1,4 VEC1(I)= PIM2(I)-PIM3(I) -PAA(I)*PROD1/XMAA**2 VEC2(I)= PIM3(I)-PIM1(I) -PAA(I)*PROD2/XMAA**2 VEC3(I)= PIM1(I)-PIM2(I) -PAA(I)*PROD3/XMAA**2 40 VEC4(I)= PIM1(I)+PIM2(I)+PIM3(I) CALL PROD5(PIM1,PIM2,PIM3,VEC5) * HADRON CURRENT C be aware that sign of vec2 is opposite to sign of vec1 in a1 case DO 45 I=1,4 HADCUR(I)= CMPLX(FNORM(MNUM)) * ( $CMPLX(VEC1(I)*COEF(1,MNUM))*FORM1(MNUM,XMAA**2,XMRO1**2,XMRO2**2)+ $CMPLX(VEC2(I)*COEF(2,MNUM))*FORM2(MNUM,XMAA**2,XMRO2**2,XMRO1**2)+ $CMPLX(VEC3(I)*COEF(3,MNUM))*FORM3(MNUM,XMAA**2,XMRO3**2,XMRO1**2)+ *(-1.0*UROJ)* $CMPLX(VEC4(I)*COEF(4,MNUM))*FORM4(MNUM,XMAA**2,XMRO1**2, $ XMRO2**2,XMRO3**2) + $(-1.0)*UROJ/4.0/PI**2/FPI**2* $CMPLX(VEC5(I)*COEF(5,MNUM))*FORM5(MNUM,XMAA**2,XMRO1**2,XMRO2**2)) 45 CONTINUE C * CALCULATE PI-VECTORS: VECTOR AND AXIAL CALL CLVEC(HADCUR,PN,PIVEC) CALL CLAXI(HADCUR,PN,PIAKS) CALL CLNUT(HADCUR,BRAKM,HVM) * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM AMPLIT=(GFERMI)**2*BRAK/2. IF (MNUM.GE.9) THEN PRINT *, 'MNUM=',MNUM ZNAK=-1.0 XM1=0.0 XM2=0.0 XM3=0.0 DO 77 K=1,4 IF (K.EQ.4) ZNAK=1.0 XM1=ZNAK*PIM1(K)**2+XM1 XM2=ZNAK*PIM2(K)**2+XM2 XM3=ZNAK*PIM3(K)**2+XM3 77 PRINT *, 'PIM1=',PIM1(K),'PIM2=',PIM2(K),'PIM3=',PIM3(K) PRINT *, 'XM1=',SQRT(XM1),'XM2=',SQRT(XM2),'XM3=',SQRT(XM3) PRINT *, '************************************************' ENDIF C POLARIMETER VECTOR IN TAU REST FRAME DO 90 I=1,3 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL HV(I)=-HV(I)/BRAK 90 CONTINUE END SUBROUTINE PROD5(P1,P2,P3,PIA) C ---------------------------------------------------------------------- C external product of P1, P2, P3 4-momenta. C SIGN is chosen +/- for decay of TAU +/- respectively C called by : DAMPAA, CLNUT C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / JAKI / JAK1,JAK2,JAKP,JAKM,KTOM COMMON / IDFC / IDFF double precision PIA(4),P1(4),P2(4),P3(4) DET2(I,J)=P1(I)*P2(J)-P2(I)*P1(J) * ----------------------------------- IF (KTOM.EQ.1.OR.KTOM.EQ.-1) THEN SIGN= IDFF/ABS(IDFF) ELSEIF (KTOM.EQ.2) THEN SIGN=-IDFF/ABS(IDFF) ELSE PRINT *, 'STOP IN PROD5: KTOM=',KTOM STOP ENDIF C C EPSILON( p1(1), p2(2), p3(3), (4) ) = 1 C PIA(1)= -P3(3)*DET2(2,4)+P3(4)*DET2(2,3)+P3(2)*DET2(3,4) PIA(2)= -P3(4)*DET2(1,3)+P3(3)*DET2(1,4)-P3(1)*DET2(3,4) PIA(3)= P3(4)*DET2(1,2)-P3(2)*DET2(1,4)+P3(1)*DET2(2,4) PIA(4)= P3(3)*DET2(1,2)-P3(2)*DET2(1,3)+P3(1)*DET2(2,3) C ALL FOUR INDICES ARE UP SO PIA(3) AND PIA(4) HAVE SAME SIGN DO 20 I=1,4 20 PIA(I)=PIA(I)*SIGN END SUBROUTINE DEXNEW(MODE,ISGN,POL,PNU,PAA,PNPI,JNPI) C ---------------------------------------------------------------------- * THIS SIMULATES TAU DECAY IN TAU REST FRAME * INTO NU A1, NEXT A1 DECAYS INTO RHO PI AND FINALLY RHO INTO PI PI. * OUTPUT FOUR MOMENTA: PNU TAUNEUTRINO, * PAA hadron 4-vector * PNPI final state particles * JNPI decay type C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / INOUT / INUT,IOUT double precision POL(4),HV(4),PAA(4),PNU(4),PNPI(4,9),RN(1) DATA IWARM/0/ save iwarn C IF(MODE.EQ.-1) THEN C =================== IWARM=1 CALL DADNEW( -1,ISGN,HV,PNU,PAA,PNPI,JDUMM) CC CALL HBOOK1(816,'WEIGHT DISTRIBUTION DEXNEW $',100,-2.,2.) C ELSEIF(MODE.EQ. 0) THEN * ======================= 300 CONTINUE IF(IWARM.EQ.0) GOTO 902 CALL DADNEW( 0,ISGN,HV,PNU,PAA,PNPI,JNPI) WT=(1+POL(1)*HV(1)+POL(2)*HV(2)+POL(3)*HV(3))/2. CC CALL HFILL(816,WT) CALL RANMAR(RN,1) IF(RN(1).GT.WT) GOTO 300 C ELSEIF(MODE.EQ. 1) THEN * ======================= CALL DADNEW( 1,ISGN,HV,PNU,PAA,PNPI,JDUMM) CC CALL HPRINT(816) ENDIF C ===== RETURN 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DEXNEW: LACK OF INITIALISATION') STOP END SUBROUTINE DADNEW(MODE,ISGN,HV,PNU,PWB,PNPI,JNPI) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL COMMON / TAUBMC / GAMPMC(30),GAMPER(30),NEVDEC(30) double precision GAMPMC ,GAMPER PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 COMMON / INOUT / INUT,IOUT double precision PNU(4),PWB(4),PNPI(4,9),HV(4),HHV(4) double precision PDUM1(4),PDUM2(4),PDUMI(4,9) double precision RRR(3) double precision WTMAX(NMODE) double precision SWT(NMODE),SSWT(NMODE) DIMENSION NEVRAW(NMODE),NEVOVR(NMODE),NEVACC(NMODE) save wtmax, nevraw, nevovr, nevacc, swt, sswt save hhv, rrr, iwarn C DATA PI /3.141592653589793238462643/ DATA IWARM/0/ C IF(MODE.EQ.-1) THEN C =================== C -- AT THE MOMENT ONLY TWO DECAY MODES OF MULTIPIONS HAVE M. ELEM NMOD=NMODE IWARM=1 C PRINT 7003 DO 1 JNPI=1,NMOD NEVRAW(JNPI)=0 NEVACC(JNPI)=0 NEVOVR(JNPI)=0 SWT(JNPI)=0 SSWT(JNPI)=0 WTMAX(JNPI)=-1. DO I=1,500 IF (JNPI.LE.0) THEN GOTO 903 ELSEIF(JNPI.LE.NM4) THEN CALL DPH4PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) ELSEIF(JNPI.LE.NM4+NM5) THEN CALL DPH5PI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN CALL DPHNPI(WT,HV,PDUM1,PDUM2,PDUMI,JNPI) ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN INUM=JNPI-NM4-NM5-NM6 CALL DPHSPK(WT,HV,PDUM1,PDUM2,PDUMI,INUM) ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN INUM=JNPI-NM4-NM5-NM6-NM3 CALL DPHSRK(WT,HV,PDUM1,PDUM2,PDUMI,INUM) ELSE GOTO 903 ENDIF IF(WT.GT.WTMAX(JNPI)/1.2) WTMAX(JNPI)=WT*1.2 ENDDO C CALL HBOOK1(801,'WEIGHT DISTRIBUTION DADNPI $',100,0.,2.,.0) C PRINT 7004,WTMAX(JNPI) 1 CONTINUE WRITE(IOUT,7005) C ELSEIF(MODE.EQ. 0) THEN C ======================= IF(IWARM.EQ.0) GOTO 902 C 300 CONTINUE IF (JNPI.LE.0) THEN GOTO 903 ELSEIF(JNPI.LE.NM4) THEN CALL DPH4PI(WT,HHV,PNU,PWB,PNPI,JNPI) ELSEIF(JNPI.LE.NM4+NM5) THEN CALL DPH5PI(WT,HHV,PNU,PWB,PNPI,JNPI) ELSEIF(JNPI.LE.NM4+NM5+NM6) THEN CALL DPHNPI(WT,HHV,PNU,PWB,PNPI,JNPI) ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3) THEN INUM=JNPI-NM4-NM5-NM6 CALL DPHSPK(WT,HHV,PNU,PWB,PNPI,INUM) ELSEIF(JNPI.LE.NM4+NM5+NM6+NM3+NM2) THEN INUM=JNPI-NM4-NM5-NM6-NM3 CALL DPHSRK(WT,HHV,PNU,PWB,PNPI,INUM) ELSE GOTO 903 ENDIF DO I=1,4 HV(I)=-ISGN*HHV(I) ENDDO C CALL HFILL(801,WT/WTMAX(JNPI)) NEVRAW(JNPI)=NEVRAW(JNPI)+1 SWT(JNPI)=SWT(JNPI)+WT SSWT(JNPI)=SSWT(JNPI)+WT**2 CALL RANMAR(RRR,3) RN=RRR(1) IF(WT.GT.WTMAX(JNPI)) NEVOVR(JNPI)=NEVOVR(JNPI)+1 IF(RN*WTMAX(JNPI).GT.WT) GOTO 300 C ROTATIONS TO BASIC TAU REST FRAME COSTHE=-1.+2.*RRR(2) THET=ACOS(COSTHE) PHI =2*PI*RRR(3) CALL ROTOR2(THET,PNU,PNU) CALL ROTOR3( PHI,PNU,PNU) CALL ROTOR2(THET,PWB,PWB) CALL ROTOR3( PHI,PWB,PWB) CALL ROTOR2(THET,HV,HV) CALL ROTOR3( PHI,HV,HV) ND=MULPIK(JNPI) DO 301 I=1,ND CALL ROTOR2(THET,PNPI(1,I),PNPI(1,I)) CALL ROTOR3( PHI,PNPI(1,I),PNPI(1,I)) 301 CONTINUE NEVACC(JNPI)=NEVACC(JNPI)+1 C ELSEIF(MODE.EQ. 1) THEN C ======================= DO 500 JNPI=1,NMOD IF(NEVRAW(JNPI).EQ.0) GOTO 500 PARGAM=SWT(JNPI)/FLOAT(NEVRAW(JNPI)+1) ERROR=0 IF(NEVRAW(JNPI).NE.0) & ERROR=SQRT(SSWT(JNPI)/SWT(JNPI)**2-1./FLOAT(NEVRAW(JNPI))) RAT=PARGAM/GAMEL WRITE(IOUT, 7010) NAMES(JNPI), & NEVRAW(JNPI),NEVACC(JNPI),NEVOVR(JNPI),PARGAM,RAT,ERROR CC CALL HPRINT(801) GAMPMC(8+JNPI-1)=RAT GAMPER(8+JNPI-1)=ERROR CAM NEVDEC(8+JNPI-1)=NEVACC(JNPI) 500 CONTINUE ENDIF C ===== RETURN 7003 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADNEW INITIALISATION ********',9X,1H* $ ) 7004 FORMAT(' *',E20.5,5X,'WTMAX = MAXIMUM WEIGHT ',9X,1H*/) 7005 FORMAT( $ /,1X,15(5H*****)/) 7010 FORMAT(///1X,15(5H*****) $ /,' *', 25X,'******** DADNEW FINAL REPORT ******** ',9X,1H* $ /,' *', 25X,'CHANNEL:',A31 ,9X,1H* $ /,' *',I20 ,5X,'NEVRAW = NO. OF DECAYS TOTAL ',9X,1H* $ /,' *',I20 ,5X,'NEVACC = NO. OF DECAYS ACCEPTED ',9X,1H* $ /,' *',I20 ,5X,'NEVOVR = NO. OF OVERWEIGHTED EVENTS ',9X,1H* $ /,' *',E20.5,5X,'PARTIAL WTDTH IN GEV UNITS ',9X,1H* $ /,' *',F20.9,5X,'IN UNITS GFERMI**2*MASS**5/192/PI**3 ',9X,1H* $ /,' *',F20.8,5X,'RELATIVE ERROR OF PARTIAL WIDTH ',9X,1H* $ /,1X,15(5H*****)/) 902 WRITE(IOUT, 9020) 9020 FORMAT(' ----- DADNEW: LACK OF INITIALISATION') STOP 903 WRITE(IOUT, 9030) JNPI,MODE 9030 FORMAT(' ----- DADNEW: WRONG JNPI',2I5) STOP END SUBROUTINE DPH4PI(DGAMT,HV,PN,PAA,PMULT,JNPI) C ---------------------------------------------------------------------- * IT SIMULATES 4pi DECAY IN TAU REST FRAME WITH * Z-AXIS ALONG 4pi MOMENTUM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 double precision HV(4),PT(4),PN(4),PAA(4),PIM1(4), * PIM2(4),PIPL(4),PMULT(4,9) double precision PR(4),PIZ(4) double precision RRR(9) double precision UU,FF,FF1,FF2,FF3,FF4,GG1,GG2,GG3,GG4,RR DATA PI /3.141592653589793238462643/ DATA ICONT /0/ save icont integer k XLAM(X,Y,Z)=SQRT(ABS((X-Y-Z)**2-4.0*Y*Z)) C AMRO, GAMRO IS ONLY A PARAMETER FOR GETING HIGHT EFFICIENCY C C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) +C JRR: Initializing the polarimeter vector to zero + HV = 0 PHSPAC=1./2**23/PI**11 PHSP=1./2**5/PI**2 C init decay mode JNPI AMP1=DCDMAS(IDFFIN(1,JNPI)) AMP2=DCDMAS(IDFFIN(2,JNPI)) AMP3=DCDMAS(IDFFIN(3,JNPI)) AMP4=DCDMAS(IDFFIN(4,JNPI)) IF (JNPI.EQ.1) THEN PREZ=0.7 AMRX=0.782 GAMRX=0.0084 AMROP =1.2 GAMROP=.46 ELSE PREZ=0.0 AMRX=1.4 GAMRX=.6 AMROP =AMRX GAMROP=GAMRX ENDIF ! 07.06.96 here was an error in the type of variable. RRDUM=0.3 CALL CHOICE(100+JNPI,RRDUM,ICHAN,PROB1,PROB2,PROB3, $ AMROP,GAMROP,AMRX,GAMRX,AMRB,GAMRB) PREZ=PROB1+PROB2 C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C CALL RANMAR(RRR,9) C * MASSES OF 4, 3 AND 2 PI SYSTEMS C 3 PI WITH SAMPLING FOR RESONANCE CAM RR1=RRR(6) AMS1=(AMP1+AMP2+AMP3+AMP4)**2 AMS2=(AMTAU-AMNUTA)**2 ALP1=ATAN((AMS1-AMROP**2)/AMROP/GAMROP) ALP2=ATAN((AMS2-AMROP**2)/AMROP/GAMROP) ALP=ALP1+RR1*(ALP2-ALP1) AM4SQ =AMROP**2+AMROP*GAMROP*TAN(ALP) AM4 =SQRT(AM4SQ) PHSPAC=PHSPAC* $ ((AM4SQ-AMROP**2)**2+(AMROP*GAMROP)**2)/(AMROP*GAMROP) PHSPAC=PHSPAC*(ALP2-ALP1) C RR1=RRR(1) AMS1=(AMP2+AMP3+AMP4)**2 AMS2=(AM4-AMP1)**2 IF (RRR(9).GT.PREZ) THEN AM3SQ=AMS1+ RR1*(AMS2-AMS1) AM3 =SQRT(AM3SQ) C --- this part of jacobian will be recovered later FF1=AMS2-AMS1 ELSE * PHASE SPACE WITH SAMPLING FOR OMEGA RESONANCE, ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) ALP=ALP1+RR1*(ALP2-ALP1) AM3SQ =AMRX**2+AMRX*GAMRX*TAN(ALP) AM3 =SQRT(AM3SQ) C --- THIS PART OF THE JACOBIAN WILL BE RECOVERED LATER --------------- FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) FF1=FF1*(ALP2-ALP1) ENDIF C MASS OF 2 RR2=RRR(2) AMS1=(AMP3+AMP4)**2 AMS2=(AM3-AMP2)**2 * FLAT PHASE SPACE; AM2SQ=AMS1+ RR2*(AMS2-AMS1) AM2 =SQRT(AM2SQ) C --- this part of jacobian will be recovered later FF2=(AMS2-AMS1) * 2 RESTFRAME, DEFINE PIZ AND PIPL ENQ1=(AM2SQ+AMP3**2-AMP4**2)/(2*AM2) ENQ2=(AM2SQ-AMP3**2+AMP4**2)/(2*AM2) PPI= ENQ1**2-AMP3**2 PPPI=SQRT(ABS(ENQ1**2-AMP3**2)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AM2) * PIZ momentum in 2 rest frame (PIZ is 3rd pi) CALL SPHERA(PPPI,PIZ) PIZ(4)=ENQ1 C PIPL momentum in 2 rest frame (PIPL is 4th pi) DO 30 I=1,3 30 PIPL(I)=-PIZ(I) PIPL(4)=ENQ2 * 3 REST FRAME, DEFINE PIM1 C PR momentum PR(1)=0 PR(2)=0 PR(4)=1./(2*AM3)*(AM3**2+AM2**2-AMP2**2) PR(3)= SQRT(ABS(PR(4)**2-AM2**2)) PPI = PR(4)**2-AM2**2 C PIM1 momentum PIM1(1)=0 PIM1(2)=0 PIM1(4)=1./(2*AM3)*(AM3**2-AM2**2+AMP2**2) PIM1(3)=-PR(3) C --- this part of jacobian will be recovered later FF3=(4*PI)*(2*PR(3)/AM3) * OLD PIONS BOOSTED FROM 2 REST FRAME TO 3 REST FRAME EXE=(PR(4)+PR(3))/AM2 CALL BOSTR3(EXE,PIZ,PIZ) CALL BOSTR3(EXE,PIPL,PIPL) RR3=RRR(3) RR4=RRR(4) THET =ACOS(-1.+2*RR3) PHI = 2*PI*RR4 CALL ROTPOL(THET,PHI,PIPL) CALL ROTPOL(THET,PHI,PIM1) CALL ROTPOL(THET,PHI,PIZ) CALL ROTPOL(THET,PHI,PR) C 4 rest frame, define PIM2 C PR momentum PR(1)=0 PR(2)=0 PR(4)=1./(2*AM4)*(AM4**2+AM3**2-AMP1**2) PR(3)= SQRT(ABS(PR(4)**2-AM3**2)) PPI = PR(4)**2-AM3**2 C PIM2 momentum PIM2(1)=0 PIM2(2)=0 PIM2(4)=1./(2*AM4)*(AM4**2-AM3**2+AMP1**2) PIM2(3)=-PR(3) C --- this part of jacobian will be recovered later FF4=(4*PI)*(2*PR(3)/AM4) * OLD PIONS BOOSTED FROM 3 REST FRAME TO 4 REST FRAME EXE=(PR(4)+PR(3))/AM3 CALL BOSTR3(EXE,PIZ,PIZ) CALL BOSTR3(EXE,PIPL,PIPL) CALL BOSTR3(EXE,PIM1,PIM1) RR3=RRR(7) RR4=RRR(8) THET =ACOS(-1.+2*RR3) PHI = 2*PI*RR4 CALL ROTPOL(THET,PHI,PIPL) CALL ROTPOL(THET,PHI,PIM1) CALL ROTPOL(THET,PHI,PIM2) CALL ROTPOL(THET,PHI,PIZ) CALL ROTPOL(THET,PHI,PR) C * NOW TO THE TAU REST FRAME, DEFINE PAA AND NEUTRINO MOMENTA * PAA MOMENTUM PAA(1)=0 PAA(2)=0 PAA(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AM4**2) PAA(3)= SQRT(ABS(PAA(4)**2-AM4**2)) PPI = PAA(4)**2-AM4**2 PHSPAC=PHSPAC*(4*PI)*(2*PAA(3)/AMTAU) PHSP=PHSP*(4*PI)*(2*PAA(3)/AMTAU) * TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AM4**2) PN(3)=-PAA(3) C ZBW 20.12.2002 bug fix IF(RRR(9).LE.0.5*PREZ) THEN DO 72 I=1,4 X=PIM1(I) PIM1(I)=PIM2(I) 72 PIM2(I)=X ENDIF C end of bug fix C WE INCLUDE REMAINING PART OF THE JACOBIAN C --- FLAT CHANNEL AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2 AMS2=(AM4-AMP2)**2 AMS1=(AMP1+AMP3+AMP4)**2 FF1=(AMS2-AMS1) AMS1=(AMP3+AMP4)**2 AMS2=(SQRT(AM3SQ)-AMP1)**2 FF2=AMS2-AMS1 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ) FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2) UU=FF1*FF2*FF3*FF4 C --- FIRST CHANNEL AM3SQ=(PIM1(4)+PIZ(4)+PIPL(4))**2-(PIM1(3)+PIZ(3)+PIPL(3))**2 $ -(PIM1(2)+PIZ(2)+PIPL(2))**2-(PIM1(1)+PIZ(1)+PIPL(1))**2 AMS2=(AM4-AMP2)**2 AMS1=(AMP1+AMP3+AMP4)**2 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) FF1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) FF1=FF1*(ALP2-ALP1) AMS1=(AMP3+AMP4)**2 AMS2=(SQRT(AM3SQ)-AMP1)**2 FF2=AMS2-AMS1 FF3=(4*PI)*(XLAM(AM2**2,AMP1**2,AM3SQ)/AM3SQ) FF4=(4*PI)*(XLAM(AM3SQ,AMP2**2,AM4**2)/AM4**2) FF=FF1*FF2*FF3*FF4 C --- SECOND CHANNEL AM3SQ=(PIM2(4)+PIZ(4)+PIPL(4))**2-(PIM2(3)+PIZ(3)+PIPL(3))**2 $ -(PIM2(2)+PIZ(2)+PIPL(2))**2-(PIM2(1)+PIZ(1)+PIPL(1))**2 AMS2=(AM4-AMP1)**2 AMS1=(AMP2+AMP3+AMP4)**2 ALP1=ATAN((AMS1-AMRX**2)/AMRX/GAMRX) ALP2=ATAN((AMS2-AMRX**2)/AMRX/GAMRX) GG1=((AM3SQ-AMRX**2)**2+(AMRX*GAMRX)**2)/(AMRX*GAMRX) GG1=GG1*(ALP2-ALP1) AMS1=(AMP3+AMP4)**2 AMS2=(SQRT(AM3SQ)-AMP2)**2 GG2=AMS2-AMS1 GG3=(4*PI)*(XLAM(AM2**2,AMP2**2,AM3SQ)/AM3SQ) GG4=(4*PI)*(XLAM(AM3SQ,AMP1**2,AM4**2)/AM4**2) GG=GG1*GG2*GG3*GG4 C --- JACOBIAN AVERAGED OVER THE TWO IF ( ( (FF+GG)*UU+FF*GG ).GT.0.0D0) THEN RR=FF*GG*UU/(0.5*PREZ*(FF+GG)*UU+(1.0-PREZ)*FF*GG) PHSPAC=PHSPAC*RR ELSE PHSPAC=0.0 ENDIF * MOMENTA OF THE TWO PI-MINUS ARE RANDOMLY SYMMETRISED IF (JNPI.EQ.1) THEN RR5= RRR(5) IF(RR5.LE.0.5) THEN DO 70 I=1,4 X=PIM1(I) PIM1(I)=PIM2(I) 70 PIM2(I)=X ENDIF PHSPAC=PHSPAC/2. ELSE C MOMENTA OF PI0-S ARE GENERATED UNIFORMLY ONLY IF PREZ=0.0 RR5= RRR(5) IF(RR5.LE.0.5) THEN DO 71 I=1,4 X=PIM1(I) PIM1(I)=PIM2(I) 71 PIM2(I)=X ENDIF PHSPAC=PHSPAC/6. ENDIF * ALL PIONS BOOSTED FROM 4 REST FRAME TO TAU REST FRAME * Z-AXIS ANTIPARALLEL TO NEUTRINO MOMENTUM EXE=(PAA(4)+PAA(3))/AM4 CALL BOSTR3(EXE,PIZ,PIZ) CALL BOSTR3(EXE,PIPL,PIPL) CALL BOSTR3(EXE,PIM1,PIM1) CALL BOSTR3(EXE,PIM2,PIM2) CALL BOSTR3(EXE,PR,PR) C PARTIAL WIDTH CONSISTS OF PHASE SPACE AND AMPLITUDE C CHECK ON CONSISTENCY WITH DADNPI, THEN, CODE BREAKES UNIFORM PION C DISTRIBUTION IN HADRONIC SYSTEM CALL DAM4PI(JNPI,PT,PN,PIM1,PIM2,PIZ,PIPL,AMPLIT,HV) DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC C PHASE SPACE CHECK C DGAMT=PHSPAC DO 77 K=1,4 PMULT(K,1) = PIM1(K) PMULT(K,2) = PIM2(K) PMULT(K,3) = PIZ (K) PMULT(K,4) = PIPL(K) 77 CONTINUE END SUBROUTINE DAM4PI(MNUM,PT,PN,PIM1,PIM2,PIM3,PIM4,AMPLIT,HV) C ---------------------------------------------------------------------- * CALCULATES DIFFERENTIAL CROSS SECTION AND POLARIMETER VECTOR * FOR TAU DECAY INTO 4 PI MODES * ALL SPIN EFFECTS IN THE FULL DECAY CHAIN ARE TAKEN INTO ACCOUNT. * CALCULATIONS DONE IN TAU REST FRAME WITH Z-AXIS ALONG NEUTRINO MOMENT C MNUM DECAY MODE IDENTIFIER. C C called by : DPH4PI C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PIM1(4), * PIM2(4),PIM3(4),PIM4(4) double precision PIVEC(4),PIAKS(4),HVM(4) double complex HADCUR(4),FORM1,FORM2,FORM3,FORM4,FORM5 EXTERNAL FORM1,FORM2,FORM3,FORM4,FORM5 DATA PI /3.141592653589793238462643/ DATA ICONT /0/ C CALL CURR(MNUM,PIM1,PIM2,PIM3,PIM4,HADCUR) C * CALCULATE PI-VECTORS: VECTOR AND AXIAL CALL CLVEC(HADCUR,PN,PIVEC) CALL CLAXI(HADCUR,PN,PIAKS) CALL CLNUT(HADCUR,BRAKM,HVM) * SPIN INDEPENDENT PART OF DECAY DIFF-CROSS-SECT. IN TAU REST FRAME BRAK= (GV**2+GA**2)*PT(4)*PIVEC(4) +2.*GV*GA*PT(4)*PIAKS(4) & +2.*(GV**2-GA**2)*AMNUTA*AMTAU*BRAKM AMPLIT=(CCABIB*GFERMI)**2*BRAK/2. C POLARIMETER VECTOR IN TAU REST FRAME DO 90 I=1,3 HV(I)=-(AMTAU*((GV**2+GA**2)*PIAKS(I)+2.*GV*GA*PIVEC(I))) & +(GV**2-GA**2)*AMNUTA*AMTAU*HVM(I) C HV IS DEFINED FOR TAU- WITH GAMMA=B+HV*POL IF (BRAK.NE.0.0) &HV(I)=-HV(I)/BRAK 90 CONTINUE END SUBROUTINE DPH5PI(DGAMT,HV,PN,PAA,PMULT,JNPI) C ---------------------------------------------------------------------- * IT SIMULATES 5pi DECAY IN TAU REST FRAME WITH * Z-AXIS ALONG 5pi MOMENTUM C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES CHARACTER NAMES(NMODE)*31 double precision HV(4),PT(4),PN(4),PAA(4),PMULT(4,9) double precision PR(4),PI1(4),PI2(4),PI3(4),PI4(4),PI5(4) double precision AMP1,AMP2,AMP3,AMP4,AMP5,ams1,ams2,amom,gamom double precision AM5SQ,AM4SQ,AM3SQ,AM2SQ,AM5,AM4,AM3 double precision RRR(10) double precision gg1,gg2,gg3,ff1,ff2,ff3,ff4,alp,alp1,alp2 double precision XM,AM,GAMMAB DATA PI /3.141592653589793238462643/ DATA ICONT /0/ data fpi /93.3e-3/ c double complex BWIGN C BWIGN(XM,AM,GAMMAB)=XM**2/CMPLX(XM**2-AM**2,GAMMAB*AM) C AMOM=.782 GAMOM=0.0085 c C 6 BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL C D**3 P /2E/(2PI)**3 (2PI)**4 DELTA4(SUM P) PHSPAC=1./2**29/PI**14 c PHSPAC=1./2**5/PI**2 C init 5pi decay mode (JNPI) AMP1=DCDMAS(IDFFIN(1,JNPI)) AMP2=DCDMAS(IDFFIN(2,JNPI)) AMP3=DCDMAS(IDFFIN(3,JNPI)) AMP4=DCDMAS(IDFFIN(4,JNPI)) AMP5=DCDMAS(IDFFIN(5,JNPI)) c C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C CALL RANMAR(RRR,10) C c masses of 5, 4, 3 and 2 pi systems c 3 pi with sampling for omega resonance cam c mass of 5 (12345) rr1=rrr(10) ams1=(amp1+amp2+amp3+amp4+amp5)**2 ams2=(amtau-amnuta)**2 am5sq=ams1+ rr1*(ams2-ams1) am5 =sqrt(am5sq) phspac=phspac*(ams2-ams1) c c mass of 4 (2345) c flat phase space rr1=rrr(9) ams1=(amp2+amp3+amp4+amp5)**2 ams2=(am5-amp1)**2 am4sq=ams1+ rr1*(ams2-ams1) am4 =sqrt(am4sq) gg1=ams2-ams1 c c mass of 3 (234) C phase space with sampling for omega resonance rr1=rrr(1) ams1=(amp2+amp3+amp4)**2 ams2=(am4-amp5)**2 alp1=atan((ams1-amom**2)/amom/gamom) alp2=atan((ams2-amom**2)/amom/gamom) alp=alp1+rr1*(alp2-alp1) am3sq =amom**2+amom*gamom*tan(alp) am3 =sqrt(am3sq) c --- this part of the jacobian will be recovered later --------------- gg2=((am3sq-amom**2)**2+(amom*gamom)**2)/(amom*gamom) gg2=gg2*(alp2-alp1) c flat phase space; C am3sq=ams1+ rr1*(ams2-ams1) C am3 =sqrt(am3sq) c --- this part of jacobian will be recovered later C gg2=ams2-ams1 c C mass of 2 (34) rr2=rrr(2) ams1=(amp3+amp4)**2 ams2=(am3-amp2)**2 c flat phase space; am2sq=ams1+ rr2*(ams2-ams1) am2 =sqrt(am2sq) c --- this part of jacobian will be recovered later gg3=ams2-ams1 c c (34) restframe, define pi3 and pi4 enq1=(am2sq+amp3**2-amp4**2)/(2*am2) enq2=(am2sq-amp3**2+amp4**2)/(2*am2) ppi= enq1**2-amp3**2 pppi=sqrt(abs(enq1**2-amp3**2)) ff1=(4*pi)*(2*pppi/am2) c pi3 momentum in (34) rest frame call sphera(pppi,pi3) pi3(4)=enq1 c pi4 momentum in (34) rest frame do 30 i=1,3 30 pi4(i)=-pi3(i) pi4(4)=enq2 c c (234) rest frame, define pi2 c pr momentum pr(1)=0 pr(2)=0 pr(4)=1./(2*am3)*(am3**2+am2**2-amp2**2) pr(3)= sqrt(abs(pr(4)**2-am2**2)) ppi = pr(4)**2-am2**2 c pi2 momentum pi2(1)=0 pi2(2)=0 pi2(4)=1./(2*am3)*(am3**2-am2**2+amp2**2) pi2(3)=-pr(3) c --- this part of jacobian will be recovered later ff2=(4*pi)*(2*pr(3)/am3) c old pions boosted from 2 rest frame to 3 rest frame exe=(pr(4)+pr(3))/am2 call bostr3(exe,pi3,pi3) call bostr3(exe,pi4,pi4) rr3=rrr(3) rr4=rrr(4) thet =acos(-1.+2*rr3) phi = 2*pi*rr4 call rotpol(thet,phi,pi2) call rotpol(thet,phi,pi3) call rotpol(thet,phi,pi4) C C (2345) rest frame, define pi5 c pr momentum pr(1)=0 pr(2)=0 pr(4)=1./(2*am4)*(am4**2+am3**2-amp5**2) pr(3)= sqrt(abs(pr(4)**2-am3**2)) ppi = pr(4)**2-am3**2 c pi5 momentum pi5(1)=0 pi5(2)=0 pi5(4)=1./(2*am4)*(am4**2-am3**2+amp5**2) pi5(3)=-pr(3) c --- this part of jacobian will be recovered later ff3=(4*pi)*(2*pr(3)/am4) c old pions boosted from 3 rest frame to 4 rest frame exe=(pr(4)+pr(3))/am3 call bostr3(exe,pi2,pi2) call bostr3(exe,pi3,pi3) call bostr3(exe,pi4,pi4) rr3=rrr(5) rr4=rrr(6) thet =acos(-1.+2*rr3) phi = 2*pi*rr4 call rotpol(thet,phi,pi2) call rotpol(thet,phi,pi3) call rotpol(thet,phi,pi4) call rotpol(thet,phi,pi5) C C (12345) rest frame, define pi1 c pr momentum pr(1)=0 pr(2)=0 pr(4)=1./(2*am5)*(am5**2+am4**2-amp1**2) pr(3)= sqrt(abs(pr(4)**2-am4**2)) ppi = pr(4)**2-am4**2 c pi1 momentum pi1(1)=0 pi1(2)=0 pi1(4)=1./(2*am5)*(am5**2-am4**2+amp1**2) pi1(3)=-pr(3) c --- this part of jacobian will be recovered later ff4=(4*pi)*(2*pr(3)/am5) c old pions boosted from 4 rest frame to 5 rest frame exe=(pr(4)+pr(3))/am4 call bostr3(exe,pi2,pi2) call bostr3(exe,pi3,pi3) call bostr3(exe,pi4,pi4) call bostr3(exe,pi5,pi5) rr3=rrr(7) rr4=rrr(8) thet =acos(-1.+2*rr3) phi = 2*pi*rr4 call rotpol(thet,phi,pi1) call rotpol(thet,phi,pi2) call rotpol(thet,phi,pi3) call rotpol(thet,phi,pi4) call rotpol(thet,phi,pi5) c * now to the tau rest frame, define paa and neutrino momenta * paa momentum paa(1)=0 paa(2)=0 c paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5**2) c paa(3)= sqrt(abs(paa(4)**2-am5**2)) c ppi = paa(4)**2-am5**2 paa(4)=1./(2*amtau)*(amtau**2-amnuta**2+am5sq) paa(3)= sqrt(abs(paa(4)**2-am5sq)) ppi = paa(4)**2-am5sq phspac=phspac*(4*pi)*(2*paa(3)/amtau) * tau-neutrino momentum pn(1)=0 pn(2)=0 pn(4)=1./(2*amtau)*(amtau**2+amnuta**2-am5**2) pn(3)=-paa(3) c phspac=phspac * gg1*gg2*gg3*ff1*ff2*ff3*ff4 c C all pions boosted from 5 rest frame to tau rest frame C z-axis antiparallel to neutrino momentum exe=(paa(4)+paa(3))/am5 call bostr3(exe,pi1,pi1) call bostr3(exe,pi2,pi2) call bostr3(exe,pi3,pi3) call bostr3(exe,pi4,pi4) call bostr3(exe,pi5,pi5) c C partial width consists of phase space and amplitude C AMPLITUDE (cf YS.Tsai Phys.Rev.D4,2821(1971) C or F.Gilman SH.Rhie Phys.Rev.D31,1066(1985) C PXQ=AMTAU*PAA(4) PXN=AMTAU*PN(4) QXN=PAA(4)*PN(4)-PAA(1)*PN(1)-PAA(2)*PN(2)-PAA(3)*PN(3) BRAK=2*(GV**2+GA**2)*(2*PXQ*QXN+AM5SQ*PXN) & -6*(GV**2-GA**2)*AMTAU*AMNUTA*AM5SQ fompp = abs(bwign(am3,amom,gamom))**2 c normalisation factor (to some numerical undimensioned factor; c cf R.Fischer et al ZPhys C3, 313 (1980)) fnorm = 1/fpi**6 c AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK * AM5SQ*SIGEE(AM5SQ,JNPI) AMPLIT=CCABIB**2*GFERMI**2/2. * BRAK amplit = amplit * fompp * fnorm c phase space test c amplit = amplit * fnorm DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC c ignore spin terms DO 40 I=1,3 40 HV(I)=0. c do 77 k=1,4 pmult(k,1)=pi1(k) pmult(k,2)=pi2(k) pmult(k,3)=pi3(k) pmult(k,4)=pi4(k) pmult(k,5)=pi5(k) 77 continue return C missing: transposition of identical particles, statistical factors C for identical matrices, polarimetric vector. Matrix element rather nai C flat phase space in pion system + with breit wigner for omega C anyway it is better than nothing, and code is improvable. end SUBROUTINE DPHSRK(DGAMT,HV,PN,PR,PMULT,INUM) C ---------------------------------------------------------------------- C IT SIMULATES RHO DECAY IN TAU REST FRAME WITH C Z-AXIS ALONG RHO MOMENTUM C Rho decays to K Kbar C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST COMMON / DECPAR / GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision GFERMI,GV,GA,CCABIB,SCABIB,GAMEL double precision HV(4),PT(4),PN(4),PR(4),PKC(4), * PKZ(4),QQ(4),PMULT(4,9) double precision RR1(1) DATA PI /3.141592653589793238462643/ DATA ICONT /0/ C C THREE BODY PHASE SPACE NORMALISED AS IN BJORKEN-DRELL PHSPAC=1./2**11/PI**5 C TAU MOMENTUM PT(1)=0. PT(2)=0. PT(3)=0. PT(4)=AMTAU C MASS OF (REAL/VIRTUAL) RHO AMS1=(AMK+AMKZ)**2 AMS2=(AMTAU-AMNUTA)**2 C FLAT PHASE SPACE CALL RANMAR(RR1,1) AMX2=AMS1+ RR1(1)*(AMS2-AMS1) AMX=SQRT(AMX2) PHSPAC=PHSPAC*(AMS2-AMS1) C PHASE SPACE WITH SAMPLING FOR RHO RESONANCE c ALP1=ATAN((AMS1-AMRO**2)/AMRO/GAMRO) c ALP2=ATAN((AMS2-AMRO**2)/AMRO/GAMRO) CAM 100 CONTINUE c CALL RANMAR(RR1,1) c ALP=ALP1+RR1(1)*(ALP2-ALP1) c AMX2=AMRO**2+AMRO*GAMRO*TAN(ALP) c AMX=SQRT(AMX2) c IF(AMX.LT.(AMK+AMKZ)) GO TO 100 CAM c PHSPAC=PHSPAC*((AMX2-AMRO**2)**2+(AMRO*GAMRO)**2)/(AMRO*GAMRO) c PHSPAC=PHSPAC*(ALP2-ALP1) C C TAU-NEUTRINO MOMENTUM PN(1)=0 PN(2)=0 PN(4)=1./(2*AMTAU)*(AMTAU**2+AMNUTA**2-AMX**2) PN(3)=-SQRT((PN(4)-AMNUTA)*(PN(4)+AMNUTA)) C RHO MOMENTUM PR(1)=0 PR(2)=0 PR(4)=1./(2*AMTAU)*(AMTAU**2-AMNUTA**2+AMX**2) PR(3)=-PN(3) PHSPAC=PHSPAC*(4*PI)*(2*PR(3)/AMTAU) C CAM ENQ1=(AMX2+AMK**2-AMKZ**2)/(2.*AMX) ENQ2=(AMX2-AMK**2+AMKZ**2)/(2.*AMX) PPPI=SQRT((ENQ1-AMK)*(ENQ1+AMK)) PHSPAC=PHSPAC*(4*PI)*(2*PPPI/AMX) C CHARGED PI MOMENTUM IN RHO REST FRAME CALL SPHERA(PPPI,PKC) PKC(4)=ENQ1 C NEUTRAL PI MOMENTUM IN RHO REST FRAME DO 20 I=1,3 20 PKZ(I)=-PKC(I) PKZ(4)=ENQ2 EXE=(PR(4)+PR(3))/AMX C PIONS BOOSTED FROM RHO REST FRAME TO TAU REST FRAME CALL BOSTR3(EXE,PKC,PKC) CALL BOSTR3(EXE,PKZ,PKZ) DO 30 I=1,4 30 QQ(I)=PKC(I)-PKZ(I) C QQ transverse to PR PKSD =PR(4)*PR(4)-PR(3)*PR(3)-PR(2)*PR(2)-PR(1)*PR(1) QQPKS=PR(4)* QQ(4)-PR(3)* QQ(3)-PR(2)* QQ(2)-PR(1)* QQ(1) DO 31 I=1,4 31 QQ(I)=QQ(I)-PR(I)*QQPKS/PKSD C AMPLITUDE PRODPQ=PT(4)*QQ(4) PRODNQ=PN(4)*QQ(4)-PN(1)*QQ(1)-PN(2)*QQ(2)-PN(3)*QQ(3) PRODPN=PT(4)*PN(4) QQ2= QQ(4)**2-QQ(1)**2-QQ(2)**2-QQ(3)**2 BRAK=(GV**2+GA**2)*(2*PRODPQ*PRODNQ-PRODPN*QQ2) & +(GV**2-GA**2)*AMTAU*AMNUTA*QQ2 AMPLIT=(GFERMI*CCABIB)**2*BRAK*2*FPIRK(AMX) DGAMT=1/(2.*AMTAU)*AMPLIT*PHSPAC DO 40 I=1,3 40 HV(I)=2*GV*GA*AMTAU*(2*PRODNQ*QQ(I)-QQ2*PN(I))/BRAK do 77 k=1,4 pmult(k,1)=pkc(k) pmult(k,2)=pkz(k) 77 continue RETURN END double precision FUNCTION FPIRK(W) C ---------------------------------------------------------- c square of pion form factor C ---------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) COMMON / PARMAS / AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST C double precision AMTAU,AMNUTA,AMEL,AMNUE,AMMU,AMNUMU * ,AMPIZ,AMPI,AMRO,GAMRO,AMA1,GAMA1 * ,AMK,AMKZ,AMKST,GAMKST c double complex FPIKMK double complex FPIKM FPIRK=ABS(FPIKM(W,AMK,AMKZ))**2 c FPIRK=ABS(FPIKMK(W,AMK,AMKZ))**2 END double complex FUNCTION FPIKMK(W,XM1,XM2) C ********************************************************** C Kaon form factor C ********************************************************** IMPLICIT double precision (A-H,O-Z) double complex BWIGM double precision XM1, XM2 double precision ROM,ROG,ROM1,ROG1,BETA1,PI,PIM,S,W SAVE PI,PIM,ROM,ROG,ROM1,ROG1,BETA1 double complex BWIG EXTERNAL BWIG DATA INIT /0/ C C ------------ PARAMETERS -------------------- IF (INIT.EQ.0 ) THEN INIT=1 PI=3.141592654 PIM=.140 ROM=0.773 ROG=0.145 ROM1=1.570 ROG1=0.510 c BETA1=-0.111 BETA1=-0.221 ENDIF C ----------------------------------------------- S=W**2 FPIKMK=(BWIGM(S,ROM,ROG,XM1,XM2)+BETA1*BWIGM(S,ROM1,ROG1,XM1,XM2)) & /(1+BETA1) RETURN END SUBROUTINE RESLUX C **************** C INITIALIZE LUND COMMON IMPLICIT double precision (A-H,O-Z) PARAMETER (NMXHEP=2000) COMMON/HEPEVTX/NEVHEP,NHEP,ISTHEP(NMXHEP),IDHEP(NMXHEP), &JMOHEP(2,NMXHEP),JDAHEP(2,NMXHEP),PHEP(5,NMXHEP),VHEP(4,NMXHEP) SAVE /HEPEVTx/ NHEP=0 END SUBROUTINE DWRPH(KTO,PHX) C C ------------------------- C IMPLICIT double precision (A-H,O-Z) double precision PHX(4) double precision QHOT(4) C DO 9 K=1,4 QHOT(K) =0.0 9 CONTINUE C CASE OF TAU RADIATIVE DECAYS. C FILLING OF THE LUND COMMON BLOCK. DO 1002 I=1,4 1002 QHOT(I)=PHX(I) IF (QHOT(4).GT.1.E-5) CALL DWLUPH(KTO,QHOT) RETURN END SUBROUTINE DWLUPH(KTO,PHOT) C--------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C called by : DEXAY1,(DEKAY1,DEKAY2) C C used when radiative corrections in decays are generated C--------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) COMMON /TAUPOS/ NP1,NP2 double precision PHOT(4) C C check energy IF (PHOT(4).LE.0.0) RETURN C C position of decaying particle: IF((KTO.EQ. 1).OR.(KTO.EQ.11)) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C KTOS=KTO IF(KTOS.GT.10) KTOS=KTOS-10 C boost and append photon (gamma is 22) CALL TRALO4(KTOS,PHOT,PHOT,AM) CALL FILHEP(0,1,22,NPS,NPS,0,0,PHOT,0.0D0,.TRUE.) C RETURN END SUBROUTINE DWLUEL(KTO,ISGN,PNU,PWB,PEL,PNE) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) COMMON /TAUPOS/ NP1,NP2 double precision PNU(4),PWB(4),PEL(4),PNE(4) C C position of decaying particle: IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C W boson (W+ is 24) CALL TRALO4(KTO,PWB,PWB,AM) C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) C C electron (e- is 11) CALL TRALO4(KTO,PEL,PEL,AM) CALL FILHEP(0,1,11*ISGN,NPS,NPS,0,0,PEL,AM,.FALSE.) C C anti electron neutrino (nu_e is 12) CALL TRALO4(KTO,PNE,PNE,AM) CALL FILHEP(0,1,-12*ISGN,NPS,NPS,0,0,PNE,AM,.TRUE.) C RETURN END SUBROUTINE DWLUMU(KTO,ISGN,PNU,PWB,PMU,PNM) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) COMMON /TAUPOS/ NP1,NP2 double precision PNU(4),PWB(4),PMU(4),PNM(4) C C position of decaying particle: IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C W boson (W+ is 24) CALL TRALO4(KTO,PWB,PWB,AM) C CALL FILHEP(0,2,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) C C muon (mu- is 13) CALL TRALO4(KTO,PMU,PMU,AM) CALL FILHEP(0,1,13*ISGN,NPS,NPS,0,0,PMU,AM,.FALSE.) C C anti muon neutrino (nu_mu is 14) CALL TRALO4(KTO,PNM,PNM,AM) CALL FILHEP(0,1,-14*ISGN,NPS,NPS,0,0,PNM,AM,.TRUE.) C RETURN END SUBROUTINE DWLUPI(KTO,ISGN,PPI,PNU) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) double precision PNU(4),PPI(4) COMMON /TAUPOS/ NP1,NP2 C C position of decaying particle: IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C charged pi meson (pi+ is 211) CALL TRALO4(KTO,PPI,PPI,AM) CALL FILHEP(0,1,-211*ISGN,NPS,NPS,0,0,PPI,AM,.TRUE.) C RETURN END SUBROUTINE DWLURO(KTO,ISGN,PNU,PRHO,PIC,PIZ) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) COMMON /TAUPOS/ NP1,NP2 double precision PNU(4),PRHO(4),PIC(4),PIZ(4) C C position of decaying particle: IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C charged rho meson (rho+ is 213) CALL TRALO4(KTO,PRHO,PRHO,AM) CALL FILHEP(0,2,-213*ISGN,NPS,NPS,0,0,PRHO,AM,.TRUE.) C C charged pi meson (pi+ is 211) CALL TRALO4(KTO,PIC,PIC,AM) CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIC,AM,.TRUE.) C C pi0 meson (pi0 is 111) CALL TRALO4(KTO,PIZ,PIZ,AM) CALL FILHEP(0,1,111,-2,-2,0,0,PIZ,AM,.TRUE.) C RETURN END SUBROUTINE DWLUAA(KTO,ISGN,PNU,PAA,PIM1,PIM2,PIPL,JAA) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C JAA = 1 (2) FOR A_1- DECAY TO PI+ 2PI- (PI- 2PI0) C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) COMMON /TAUPOS/ NP1,NP2 double precision PNU(4),PAA(4),PIM1(4),PIM2(4),PIPL(4) C C position of decaying particle: IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C charged a_1 meson (a_1+ is 20213) CALL TRALO4(KTO,PAA,PAA,AM) CALL FILHEP(0,1,-20213*ISGN,NPS,NPS,0,0,PAA,AM,.TRUE.) C C two possible decays of the charged a1 meson IF(JAA.EQ.1) THEN C C A1 --> PI+ PI- PI- (or charged conjugate) C C pi minus (or c.c.) (pi+ is 211) CALL TRALO4(KTO,PIM2,PIM2,AM) CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PIM2,AM,.TRUE.) C C pi minus (or c.c.) (pi+ is 211) CALL TRALO4(KTO,PIM1,PIM1,AM) CALL FILHEP(0,1,-211*ISGN,-2,-2,0,0,PIM1,AM,.TRUE.) C C pi plus (or c.c.) (pi+ is 211) CALL TRALO4(KTO,PIPL,PIPL,AM) CALL FILHEP(0,1, 211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.) C ELSE IF (JAA.EQ.2) THEN C C A1 --> PI- PI0 PI0 (or charged conjugate) C C pi zero (pi0 is 111) CALL TRALO4(KTO,PIM2,PIM2,AM) CALL FILHEP(0,1,111,-1,-1,0,0,PIM2,AM,.TRUE.) C C pi zero (pi0 is 111) CALL TRALO4(KTO,PIM1,PIM1,AM) CALL FILHEP(0,1,111,-2,-2,0,0,PIM1,AM,.TRUE.) C C pi minus (or c.c.) (pi+ is 211) CALL TRALO4(KTO,PIPL,PIPL,AM) CALL FILHEP(0,1,-211*ISGN,-3,-3,0,0,PIPL,AM,.TRUE.) C ENDIF C RETURN END SUBROUTINE DWLUKK (KTO,ISGN,PKK,PNU) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) double precision PKK(4),PNU(4) COMMON /TAUPOS/ NP1,NP2 C C position of decaying particle IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4 (KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C K meson (K+ is 321) CALL TRALO4 (KTO,PKK,PKK,AM) CALL FILHEP(0,1,-321*ISGN,NPS,NPS,0,0,PKK,AM,.TRUE.) C RETURN END SUBROUTINE DWLUKS(KTO,ISGN,PNU,PKS,PKK,PPI,JKST) IMPLICIT double precision (A-H,O-Z) COMMON / TAUKLE / BRA1,BRK0,BRK0B,BRKS double precision BRA1,BRK0,BRK0B,BRKS COMMON /TAUPOS/ NP1,NP2 double precision XIO(1) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C JKST=10 (20) corresponds to K0B pi- (K- pi0) decay C C ---------------------------------------------------------------------- C double precision PNU(4),PKS(4),PKK(4),PPI(4) C C position of decaying particle IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C charged K* meson (K*+ is 323) CALL TRALO4(KTO,PKS,PKS,AM) CALL FILHEP(0,1,-323*ISGN,NPS,NPS,0,0,PKS,AM,.TRUE.) C C two possible decay modes of charged K* IF(JKST.EQ.10) THEN C C K*- --> pi- K0B (or charged conjugate) C C charged pi meson (pi+ is 211) CALL TRALO4(KTO,PPI,PPI,AM) CALL FILHEP(0,1,-211*ISGN,-1,-1,0,0,PPI,AM,.TRUE.) C BRAN=BRK0B IF (ISGN.EQ.-1) BRAN=BRK0 C K0 --> K0_long (is 130) / K0_short (is 310) = 1/1 CALL RANMAR(XIO,1) IF(XIO(1).GT.BRAN) THEN K0TYPE = 130 ELSE K0TYPE = 310 ENDIF C CALL TRALO4(KTO,PKK,PKK,AM) CALL FILHEP(0,1,K0TYPE,-2,-2,0,0,PKK,AM,.TRUE.) C ELSE IF(JKST.EQ.20) THEN C C K*- --> pi0 K- C C pi zero (pi0 is 111) CALL TRALO4(KTO,PPI,PPI,AM) CALL FILHEP(0,1,111,-1,-1,0,0,PPI,AM,.TRUE.) C C charged K meson (K+ is 321) CALL TRALO4(KTO,PKK,PKK,AM) CALL FILHEP(0,1,-321*ISGN,-2,-2,0,0,PKK,AM,.TRUE.) C ENDIF C RETURN END SUBROUTINE DWLNEW(KTO,ISGN,PNU,PWB,PNPI,MODE) C ---------------------------------------------------------------------- C Lorentz transformation to CMsystem and C Updating of HEPEVT record C C ISGN = 1/-1 for tau-/tau+ C C called by : DEXAY,(DEKAY1,DEKAY2) C ---------------------------------------------------------------------- C IMPLICIT double precision (A-H,O-Z) PARAMETER (NMODE=15,NM1=0,NM2=1,NM3=8,NM4=2,NM5=1,NM6=3) COMMON / TAUDCD /IDFFIN(9,NMODE),MULPIK(NMODE) & ,NAMES COMMON /TAUPOS/ NP1,NP2 CHARACTER NAMES(NMODE)*31 double precision PNU(4),PWB(4),PNPI(4,9) double precision PPI(4) C JNPI=MODE-7 C position of decaying particle IF(KTO.EQ. 1) THEN NPS=NP1 ELSE NPS=NP2 ENDIF C C tau neutrino (nu_tau is 16) CALL TRALO4(KTO,PNU,PNU,AM) CALL FILHEP(0,1,16*ISGN,NPS,NPS,0,0,PNU,AM,.TRUE.) C C W boson (W+ is 24) CALL TRALO4(KTO,PWB,PWB,AM) CALL FILHEP(0,1,-24*ISGN,NPS,NPS,0,0,PWB,AM,.TRUE.) C C multi pi mode JNPI C C get multiplicity of mode JNPI ND=MULPIK(JNPI) DO I=1,ND cam KFPI=LUNPIK(IDFFIN(I,JNPI),-ISGN) KFPI=LUNPIK(IDFFIN(I,JNPI), ISGN) C for charged conjugate case, change charged pions only C IF(KFPI.NE.111)KFPI=KFPI*ISGN DO J=1,4 PPI(J)=PNPI(J,I) END DO CALL TRALO4(KTO,PPI,PPI,AM) CALL FILHEP(0,1,KFPI,-I,-I,0,0,PPI,AM,.TRUE.) END DO C RETURN END double precision FUNCTION AMAST(PP) C ---------------------------------------------------------------------- C CALCULATES MASS OF PP (DOUBLE PRECISION) C C USED BY : RADKOR C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PP(4) AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2 C IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA)) AMAST=AAA RETURN END double precision FUNCTION AMAS4(PP) C ****************** C ---------------------------------------------------------------------- C CALCULATES MASS OF PP C C USED BY : C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PP(4) AAA=PP(4)**2-PP(3)**2-PP(2)**2-PP(1)**2 IF(AAA.NE.0.0) AAA=AAA/SQRT(ABS(AAA)) AMAS4=AAA RETURN END double precision FUNCTION ANGXY(X,Y) C ---------------------------------------------------------------------- C C USED BY : KORALZ RADKOR C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) DATA PI /3.141592653589793238462643D0/ C IF(ABS(Y).LT.ABS(X)) THEN THE=ATAN(ABS(Y/X)) IF(X.LE.0D0) THE=PI-THE ELSE THE=ACOS(X/SQRT(X**2+Y**2)) ENDIF ANGXY=THE RETURN END double precision FUNCTION ANGFI(X,Y) C ---------------------------------------------------------------------- * CALCULATES ANGLE IN (0,2*PI) RANGE OUT OF X-Y C C USED BY : KORALZ RADKOR C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) DATA PI /3.141592653589793238462643D0/ C IF(ABS(Y).LT.ABS(X)) THEN THE=ATAN(ABS(Y/X)) IF(X.LE.0D0) THE=PI-THE ELSE THE=ACOS(X/SQRT(X**2+Y**2)) ENDIF IF(Y.LT.0D0) THE=2D0*PI-THE ANGFI=THE END SUBROUTINE ROTOD1(PH1,PVEC,QVEC) C ---------------------------------------------------------------------- C C USED BY : KORALZ C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION PVEC(4),QVEC(4),RVEC(4) C PHI=PH1 CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)=RVEC(1) QVEC(2)= CS*RVEC(2)-SN*RVEC(3) QVEC(3)= SN*RVEC(2)+CS*RVEC(3) QVEC(4)=RVEC(4) RETURN END SUBROUTINE ROTOD2(PH1,PVEC,QVEC) C ---------------------------------------------------------------------- C C USED BY : KORALZ RADKOR C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION PVEC(4),QVEC(4),RVEC(4) C PHI=PH1 CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)= CS*RVEC(1)+SN*RVEC(3) QVEC(2)=RVEC(2) QVEC(3)=-SN*RVEC(1)+CS*RVEC(3) QVEC(4)=RVEC(4) RETURN END SUBROUTINE ROTOD3(PH1,PVEC,QVEC) C ---------------------------------------------------------------------- C C USED BY : KORALZ RADKOR C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) C DIMENSION PVEC(4),QVEC(4),RVEC(4) PHI=PH1 CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)= CS*RVEC(1)-SN*RVEC(2) QVEC(2)= SN*RVEC(1)+CS*RVEC(2) QVEC(3)=RVEC(3) QVEC(4)=RVEC(4) END SUBROUTINE BOSTR3(EXE,PVEC,QVEC) C ---------------------------------------------------------------------- C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY. C C USED BY : TAUOLA KORALZ (?) C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PVEC(4),QVEC(4),RVEC(4) C DO 10 I=1,4 10 RVEC(I)=PVEC(I) RPL=RVEC(4)+RVEC(3) RMI=RVEC(4)-RVEC(3) QPL=RPL*EXE QMI=RMI/EXE QVEC(1)=RVEC(1) QVEC(2)=RVEC(2) QVEC(3)=(QPL-QMI)/2 QVEC(4)=(QPL+QMI)/2 END SUBROUTINE BOSTD3(EXE,PVEC,QVEC) C ---------------------------------------------------------------------- C BOOST ALONG Z AXIS, EXE=EXP(ETA), ETA= HIPERBOLIC VELOCITY. C C USED BY : KORALZ RADKOR C ---------------------------------------------------------------------- IMPLICIT DOUBLE PRECISION (A-H,O-Z) DIMENSION PVEC(4),QVEC(4),RVEC(4) C DO 10 I=1,4 10 RVEC(I)=PVEC(I) RPL=RVEC(4)+RVEC(3) RMI=RVEC(4)-RVEC(3) QPL=RPL*EXE QMI=RMI/EXE QVEC(1)=RVEC(1) QVEC(2)=RVEC(2) QVEC(3)=(QPL-QMI)/2 QVEC(4)=(QPL+QMI)/2 RETURN END SUBROUTINE ROTOR1(PH1,PVEC,QVEC) C ---------------------------------------------------------------------- C C called by : C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PVEC(4),QVEC(4),RVEC(4) C PHI=PH1 CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)=RVEC(1) QVEC(2)= CS*RVEC(2)-SN*RVEC(3) QVEC(3)= SN*RVEC(2)+CS*RVEC(3) QVEC(4)=RVEC(4) END SUBROUTINE ROTOR2(PH1,PVEC,QVEC) C ---------------------------------------------------------------------- C C USED BY : TAUOLA C ---------------------------------------------------------------------- IMPLICIT double precision(A-H,O-Z) double precision PVEC(4),QVEC(4),RVEC(4) C PHI=PH1 CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)= CS*RVEC(1)+SN*RVEC(3) QVEC(2)=RVEC(2) QVEC(3)=-SN*RVEC(1)+CS*RVEC(3) QVEC(4)=RVEC(4) END SUBROUTINE ROTOR3(PHI,PVEC,QVEC) C ---------------------------------------------------------------------- C C USED BY : TAUOLA C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PVEC(4),QVEC(4),RVEC(4) C CS=COS(PHI) SN=SIN(PHI) DO 10 I=1,4 10 RVEC(I)=PVEC(I) QVEC(1)= CS*RVEC(1)-SN*RVEC(2) QVEC(2)= SN*RVEC(1)+CS*RVEC(2) QVEC(3)=RVEC(3) QVEC(4)=RVEC(4) END SUBROUTINE SPHERD(R,X) C ---------------------------------------------------------------------- C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R C DOUBLE PRECISON VERSION OF SPHERA C ---------------------------------------------------------------------- double precision R,X(4),PI,COSTH,SINTH double precision RRR(2) DATA PI /3.141592653589793238462643D0/ C CALL RANMAR(RRR,2) COSTH=-1+2*RRR(1) SINTH=SQRT(1 -COSTH**2) X(1)=R*SINTH*COS(2*PI*RRR(2)) X(2)=R*SINTH*SIN(2*PI*RRR(2)) X(3)=R*COSTH RETURN END SUBROUTINE ROTPOX(THET,PHI,PP) IMPLICIT double precision (A-H,O-Z) C ---------------------------------------------------------------------- C double precison version of ROTPOL C ---------------------------------------------------------------------- DIMENSION PP(4) C CALL ROTOD2(THET,PP,PP) CALL ROTOD3( PHI,PP,PP) RETURN END SUBROUTINE SPHERA(R,X) C ---------------------------------------------------------------------- C GENERATES UNIFORMLY THREE-VECTOR X ON SPHERE OF RADIUS R C C called by : DPHSxx,DADMPI,DADMKK C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision R,X(4) double precision RRR(2) DATA PI /3.141592653589793238462643/ C CALL RANMAR(RRR,2) COSTH=-1.+2.*RRR(1) SINTH=SQRT(1.-COSTH**2) X(1)=R*SINTH*COS(2*PI*RRR(2)) X(2)=R*SINTH*SIN(2*PI*RRR(2)) X(3)=R*COSTH RETURN END SUBROUTINE ROTPOL(THET,PHI,PP) C ---------------------------------------------------------------------- C C called by : DADMAA,DPHSAA C ---------------------------------------------------------------------- IMPLICIT double precision (A-H,O-Z) double precision PP(4) C CALL ROTOR2(THET,PP,PP) CALL ROTOR3( PHI,PP,PP) RETURN END SUBROUTINE RMARIN(IJKLIN,NTOTIN,NTOT2N) IMPLICIT NONE INTEGER IJKLIN,NTOTIN,NTOT2N RETURN END SUBROUTINE RMARUT(IJKLIN,NTOTIN,NTOT2N) IMPLICIT NONE INTEGER IJKLIN,NTOTIN,NTOT2N RETURN END SUBROUTINE RANMAR(RVEC,LENV) IMPLICIT NONE INTEGER LENV double precision RVEC DIMENSION RVEC(*) double precision PYR INTEGER IVEC DO 100 IVEC= 1, LENV RVEC(IVEC) = PYR(0) 100 CONTINUE RETURN END double precision FUNCTION DILOGT(X) C ***************** IMPLICIT double precision(A-H,O-Z) CERN C304 VERSION 29/07/71 DILOG 59 C Z=-1.64493406684822 IF(X .LT.-1.0) GO TO 1 IF(X .LE. 0.5) GO TO 2 IF(X .EQ. 1.0) GO TO 3 IF(X .LE. 2.0) GO TO 4 Z=3.2898681336964 1 T=1.0/X S=-0.5 Z=Z-0.5* LOG(ABS(X))**2 GO TO 5 2 T=X S=0.5 Z=0. GO TO 5 3 DILOGT=1.64493406684822 RETURN 4 T=1.0-X S=-0.5 Z=1.64493406684822 - LOG(X)* LOG(ABS(T)) 5 Y=2.66666666666666 *T+0.66666666666666 B= 0.00000 00000 00001 A=Y*B +0.00000 00000 00004 B=Y*A-B+0.00000 00000 00011 A=Y*B-A+0.00000 00000 00037 B=Y*A-B+0.00000 00000 00121 A=Y*B-A+0.00000 00000 00398 B=Y*A-B+0.00000 00000 01312 A=Y*B-A+0.00000 00000 04342 B=Y*A-B+0.00000 00000 14437 A=Y*B-A+0.00000 00000 48274 B=Y*A-B+0.00000 00001 62421 A=Y*B-A+0.00000 00005 50291 B=Y*A-B+0.00000 00018 79117 A=Y*B-A+0.00000 00064 74338 B=Y*A-B+0.00000 00225 36705 A=Y*B-A+0.00000 00793 87055 B=Y*A-B+0.00000 02835 75385 A=Y*B-A+0.00000 10299 04264 B=Y*A-B+0.00000 38163 29463 A=Y*B-A+0.00001 44963 00557 B=Y*A-B+0.00005 68178 22718 A=Y*B-A+0.00023 20021 96094 B=Y*A-B+0.00100 16274 96164 A=Y*B-A+0.00468 63619 59447 B=Y*A-B+0.02487 93229 24228 A=Y*B-A+0.16607 30329 27855 A=Y*A-B+1.93506 43008 6996 DILOGT=S*T*(A-B)+Z RETURN C======================================================================= C===================END OF CPC PART ==================================== C======================================================================= END Index: trunk/ChangeLog =================================================================== --- trunk/ChangeLog (revision 8406) +++ trunk/ChangeLog (revision 8407) @@ -1,2024 +1,2027 @@ ChangeLog -- Summary of changes to the WHIZARD package Use svn log to see detailed changes. Version 2.8.3 2020-03-03 RELEASE: version 2.8.3 +2020-06-09 + Bug fix: correct assignment for tau spins from PYTHIA6 interface + 2020-06-04 Bug fix: cascades2 tree merge with empty subtree(s) 2020-05-31 Switch $epa_mode for different EPA implementations 2020-05-26 Bug fix: spin information transferred for resonance histories 2020-04-13 HepMC: correct weighted events for non-xsec event normalizations 2020-04-04 Improved HepMC3 interface: HepMC3 Root/RootTree interface 2020-03-24 ISR: Fix on-shell kinematics for events with ?isr_handler=true (set ?isr_handler_keep_mass=false for old behavior) 2020-03-11 Beam masses are correctly passed to hard matrix element for CIRCE2 EPA with polarized beams: double-counting corrected 2020-02-25 Bug fix: Scale and alphas can be retrieved from internal event format to external formats 2020-02-17 Bug fix: ?keep_failed_events now forces output of actual event data Bug fix: particle-set reconstruction (rescanning events w/o radiation) 2020-01-28 Bug fix for left-over EPA parameter epa_e_max (replaced by epa_q_max) 2020-01-23 Bug fix for real components of NLO QCD 2->1 processes 2020-01-22 Bug fix: correct random number sequencing during parallel MPI event generation with rng_stream 2020-01-21 Consistent distribution of events during parallel MPI event generation 2020-01-20 Bug fix for configure setup for automake v1.16+ 2020-01-18 General SLHA parameter files for UFO models supported 2020-01-08 Bug fix: correctly register RECOLA processes with flavor sums 2019-12-19 Support for UFO customized propagators O'Mega unit tests for fermion-number violating interactions 2019-12-10 For distribution building: check for graphviz/dot version 2.40 or newer 2019-11-21 Bug fix: alternate setups now work correctly Infrastructure for accessing alpha_QED event-by-event Guard against tiny numbers that break ASCII event output Enable inverse hyperbolic functions as SINDARIN observables Remove old compiler bug workarounds 2019-11-20 Allow quoted -e argument, implemented -f option 2019-11-19 Bug fix: resonance histories now work also with UFO models Fix in numerical precision of ASCII VAMP2 grids 2019-11-06 Add squared matrix elements to the LCIO event header 2019-11-05 Do not include RNG state in MD5 sum for CIRCE1/2 2019-11-04 Full CIRCE2 ILC 250 and 500 GeV beam spectra added Minor update on LCIO event header information 2019-10-30 NLO QCD for final states completed When using Openloops, v2.1.1+ mandatory 2019-10-25 Binary grid files for VAMP2 integrator ################################################################## 2019-10-24 RELEASE: version 2.8.2 2019-10-20 Bug fix for HepMC linker flags 2019-10-19 Support for spin-2 particles from UFO files 2019-09-27 LCIO event format allows rescan and alternate weights 2019-09-24 Compatibility fix for OCaml v4.08.0+ ################################################################## 2019-09-21 RELEASE: version 2.8.1 2019-09-19 Carriage return characters in UFO models can be parsed Mathematica symbols in UFO models possible Unused/undefined parameters in UFO models handled 2019-09-13 New extended NLO test suite for ee and pp processes 2019-09-09 Photon isolation (separation of perturbative and fragmentation part a la Frixione) 2019-09-05 Major progress on NLO QCD for hadron collisions: - correctly assign flavor structures for alpha regions - fix crossing of particles for initial state splittings - correct assignment for PDF factors for real subtractions - fix kinematics for collinear splittings - bug fix for integrated virtual subtraction terms 2019-09-03 b and c jet selection in cuts and analysis 2019-08-27 Support for Intel MPI 2019-08-20 Complete (preliminary) HepMC3 support (incl. backwards HepMC2 write/read mode) 2019-08-08 Bug fix: handle carriage returns in UFO files (non-Unix OS) ################################################################## 2019-08-07 RELEASE: version 2.8.0 2019-07-31 Complete WHIZARD UFO interface: - general Lorentz structures - matrix element support for general color factors - missing features: Majorana fermions and SLHA 2019-07-20 Make WHIZARD compatible with OCaml 4.08.0+ 2019-07-19 Fix version testing for LHAPDF 6.2.3 and newer Minimal required OCaml version is now 4.02.3. 2019-04-18 Correctly generate ordered FKS tuples for alpha regions from all possible underlying Born processes 2019-04-08 Extended O'Mega/Recola matrix element test suite 2019-03-29 Correct identical particle symmetry factors for FKS subtraction 2019-03-28 Correct assertion of spin-correlated matrix elements for hadron collisions 2019-03-27 Bug fix for cut-off parameter delta_i for collinear plus/minus regions ################################################################## 2019-03-27 RELEASE: version 2.7.1 2019-02-19 Further infrastructure for HepMC3 interface (v3.01.00) 2019-02-07 Explicit configure option for using debugging options Bug fix for performance by removing unnecessary debug operations 2019-01-29 Bug fix for DGLAP remnants with cut-off parameter delta_i 2019-01-24 Radiative decay neu2 -> neu1 A added to MSSM_Hgg model ################################################################## 2019-01-21 RELEASE: version 2.7.0 2018-12-18 Support RECOLA for integrated und unintegrated subtractions 2018-12-11 FCNC top-up sector in model SM_top_anom 2018-12-05 Use libtirpc instead of SunRPC on Arch Linux etc. 2018-11-30 Display rescaling factor for weighted event samples with cuts 2018-11-29 Reintroduce check against different masses in flavor sums Bug fix for wrong couplings in the Littlest Higgs model(s) 2018-11-22 Bug fix for rescanning events with beam structure 2018-11-09 Major refactoring of internal process data 2018-11-02 PYTHIA8 interface 2018-10-29 Flat phase space parametrization with RAMBO (on diet) implemented 2018-10-17 Revise extended test suite 2018-09-27 Process container for RECOLA processes 2018-09-15 Fixes by M. Berggren for PYTHIA6 interface 2018-09-14 First fixes after HepForge modernization ################################################################## 2018-08-23 RELEASE: version 2.6.4 2018-08-09 Infrastructure to check colored subevents 2018-07-10 Infrastructure for running WHIZARD in batch mode 2018-07-04 MPI available from distribution tarball 2018-06-03 Support Intel Fortran Compiler under MAC OS X 2018-05-07 FKS slicing parameter delta_i (initial state) implementend 2018-05-03 Refactor structure function assignment for NLO 2018-05-02 FKS slicing parameter xi_cut, delta_0 implemented 2018-04-20 Workspace subdirectory for process integration (grid/phs files) Packing/unpacking of files at job end/start Exporting integration results from scan loops 2018-04-13 Extended QCD NLO test suite 2018-04-09 Bug fix for Higgs Singlet Extension model 2018-04-06 Workspace subdirectory for process generation and compilation --job-id option for creating job-specific names 2018-03-20 Bug fix for color flow matching in hadron collisions with identical initial state quarks 2018-03-08 Structure functions quantum numbers correctly assigned for NLO 2018-02-24 Configure setup includes 'pgfortran' and 'flang' 2018-02-21 Include spin-correlated matrix elements in interactions 2018-02-15 Separate module for QED ISR structure functions ################################################################## 2018-02-10 RELEASE: version 2.6.3 2018-02-08 Improvements in memory management for PS generation 2018-01-31 Partial refactoring: quantum number assigment NLO Initial-state QCD splittings for hadron collisions 2018-01-25 Bug fix for weighted events with VAMP2 2018-01-17 Generalized interface for Recola versions 1.3+ and 2.1+ 2018-01-15 Channel equivalences also for VAMP2 integrator 2018-01-12 Fix for OCaml compiler 4.06 (and newer) 2017-12-19 RECOLA matrix elements with flavor sums can be integrated 2017-12-18 Bug fix for segmentation fault in empty resonance histories 2017-12-16 Fixing a bug in PYTHIA6 PYHEPC routine by omitting CMShowers from transferral between PYTHIA and WHIZARD event records 2017-12-15 Event index for multiple processes in event file correct ################################################################## 2017-12-13 RELEASE: version 2.6.2 2017-12-07 User can set offset in event numbers 2017-11-29 Possibility to have more than one RECOLA process in one file 2017-11-23 Transversal/mixed (and unitarized) dim-8 operators 2017-11-16 epa_q_max replaces epa_e_max (trivial factor 2) 2017-11-15 O'Mega matrix element compilation silent now 2017-11-14 Complete expanded P-wave form factor for top threshold 2017-11-10 Incoming particles can be accessed in SINDARIN 2017-11-08 Improved handling of resonance insertion, additional parameters 2017-11-04 Added Higgs-electron coupling (SM_Higgs) ################################################################## 2017-11-03 RELEASE: version 2.6.1 2017-10-20 More than 5 NLO components possible at same time 2017-10-19 Gaussian cutoff for shower resonance matching 2017-10-12 Alternative (more efficient) method to generate phase space file 2017-10-11 Bug fix for shower resonance histories for processes with multiple components 2017-09-25 Bug fix for process libraries in shower resonance histories 2017-09-21 Correctly generate pT distribution for EPA remnants 2017-09-20 Set branching ratios for unstable particles also by hand 2017-09-14 Correctly generate pT distribution for ISR photons ################################################################## 2017-09-08 RELEASE: version 2.6.0 2017-09-05 Bug fix for initial state NLO QCD flavor structures Real and virtual NLO QCD hadron collider processes work with internal interactions 2017-09-04 Fully validated MPI integration and event generation 2017-09-01 Resonance histories for shower: full support Bug fix in O'Mega model constraints O'Mega allows to output a parsable form of the DAG 2017-08-24 Resonance histories in events for transferral to parton shower (e.g. in ee -> jjjj) 2017-08-01 Alpha version of HepMC v3 interface (not yet really functional) 2017-07-31 Beta version for RECOLA OLP support 2017-07-06 Radiation generator fix for LHC processes 2017-06-30 Fix bug for NLO with structure functions and/or polarization 2017-06-23 Collinear limit for QED corrections works 2017-06-17 POWHEG grids generated already during integration 2017-06-12 Soft limit for QED corrections works 2017-05-16 Beta version of full MPI parallelization (VAMP2) Check consistency of POWHEG grid files Logfile config-summary.log for configure summary 2017-05-12 Allow polarization in top threshold 2017-05-09 Minimal demand automake 1.12.2 Silent rules for make procedures 2017-05-07 Major fix for POWHEG damping Correctly initialize FKS ISR phasespace ################################################################## 2017-05-06 RELEASE: version 2.5.0 2017-05-05 Full UFO support (SM-like models) Fixed-beam ISR FKS phase space 2017-04-26 QED splittings in radiation generator 2017-04-10 Retire deprecated O'Mega vertex cache files ################################################################## 2017-03-24 RELEASE: version 2.4.1 2017-03-16 Distinguish resonance charge in phase space channels Keep track of resonance histories in phase space Complex mass scheme default for OpenLoops amplitudes 2017-03-13 Fix helicities for polarized OpenLoops calculations 2017-03-09 Possibility to advance RNG state in rng_stream 2017-03-04 General setup for partitioning real emission phase space 2017-03-06 Bug fix on rescan command for converting event files 2017-02-27 Alternative multi-channel VEGAS implementation VAMP2: serial backbone for MPI setup Smoothstep top threshold matching 2017-02-25 Single-beam structure function with s-channel mapping supported Safeguard against invalid process libraries 2017-02-16 Radiation generator for photon emission 2017-02-10 Fixes for NLO QCD processes (color correlations) 2017-01-16 LCIO variable takes precedence over LCIO_DIR 2017-01-13 Alternative random number generator rng_stream (cf. L'Ecuyer et al.) 2017-01-01 Fix for multi-flavor BLHA tree matrix elements 2016-12-31 Grid path option for VAMP grids 2016-12-28 Alpha version of Recola OLP support 2016-12-27 Dalitz plots for FKS phase space 2016-12-14 NLO multi-flavor events possible 2016-12-09 LCIO event header information added 2016-12-02 Alpha version of RECOLA interface Bug fix for generator status in LCIO ################################################################## 2016-11-28 RELEASE: version 2.4.0 2016-11-24 Bug fix for OpenLoops interface: EW scheme is set by WHIZARD Bug fixes for top threshold implementation 2016-11-11 Refactoring of dispatching 2016-10-18 Bug fix for LCIO output 2016-10-10 First implementation for collinear soft terms 2016-10-06 First full WHIZARD models from UFO files 2016-10-05 WHIZARD does not support legacy gcc 4.7.4 any longer 2016-09-30 Major refactoring of process core and NLO components 2016-09-23 WHIZARD homogeneous entity: discarding subconfigures for CIRCE1/2, O'Mega, VAMP subpackages; these are reconstructable by script projectors 2016-09-06 Introduce main configure summary 2016-08-26 Fix memory leak in event generation ################################################################## 2016-08-25 RELEASE: version 2.3.1 2016-08-19 Bug fix for EW-scheme dependence of gluino propagators 2016-08-01 Beta version of complex mass scheme support 2016-07-26 Fix bug in POWHEG damping for the matching ################################################################## 2016-07-21 RELEASE: version 2.3.0 2016-07-20 UFO file support (alpha version) in O'Mega 2016-07-13 New (more) stable of WHIZARD GUI Support for EW schemes for OpenLoops Factorized NLO top decays for threshold model 2016-06-15 Passing factorization scale to PYTHIA6 Adding charge and neutral observables 2016-06-14 Correcting angular distribution/tweaked kinematics in non-collinear structure functions splittings 2016-05-10 Include (Fortran) TAUOLA/PHOTOS for tau decays via PYTHIA6 (backwards validation of LC CDR/TDR samples) 2016-04-27 Within OpenLoops virtuals: support for Collier library 2016-04-25 O'Mega vertex tables only loaded at first usage 2016-04-21 New CJ15 PDF parameterizations added 2016-04-21 Support for hadron collisions at NLO QCD 2016-04-05 Support for different (parameter) schemes in model files 2016-03-31 Correct transferral of lifetime/vertex from PYTHIA/TAUOLA into the event record 2016-03-21 New internal implementation of polarization via Bloch vectors, remove pointer constructions 2016-03-13 Extension of cascade syntax for processes: exclude propagators/vertices etc. possible 2016-02-24 Full support for OpenLoops QCD NLO matrix elements, inclusion in test suite 2016-02-12 Substantial progress on QCD NLO support 2016-02-02 Automated resonance mapping for FKS subtraction 2015-12-17 New BSM model WZW for diphoton resonances ################################################################## 2015-11-22 RELEASE: version 2.2.8 2015-11-21 Bug fix for fixed-order NLO events 2015-11-20 Anomalous FCNC top-charm vertices 2015-11-19 StdHEP output via HEPEVT/HEPEV4 supported 2015-11-18 Full set of electroweak dim-6 operators included 2015-10-22 Polarized one-loop amplitudes supported 2015-10-21 Fixes for event formats for showered events 2015-10-14 Callback mechanism for event output 2015-09-22 Bypass matrix elements in pure event sample rescans StdHep frozen final version v5.06.01 included internally 2015-09-21 configure option --with-precision to demand 64bit, 80bit, or 128bit Fortran and bind C precision types 2015-09-07 More extensive tests of NLO infrastructure and POWHEG matching 2015-09-01 NLO decay infrastructure User-defined squared matrix elements Inclusive FastJet algorithm plugin Numerical improvement for small boosts ################################################################## 2015-08-11 RELEASE: version 2.2.7 2015-08-10 Infrastructure for damped POWHEG Massive emitters in POWHEG Born matrix elements via BLHA GoSam filters via SINDARIN Minor running coupling bug fixes Fixed-order NLO events 2015-08-06 CT14 PDFs included (LO, NLO, NNLL) 2015-07-07 Revalidation of ILC WHIZARD-PYTHIA event chain Extended test suite for showered events Alpha version of massive FSR for POWHEG 2015-06-09 Fix memory leak in interaction for long cascades Catch mismatch between beam definition and CIRCE2 spectrum 2015-06-08 Automated POWHEG matching: beta version Infrastructure for GKS matching Alpha version of fixed-order NLO events CIRCE2 polarization averaged spectra with explicitly polarized beams 2015-05-12 Abstract matching type: OO structure for matching/merging 2015-05-07 Bug fix in event record WHIZARD-PYTHIA6 transferral Gaussian beam spectra for lepton colliders ################################################################## 2015-05-02 RELEASE: version 2.2.6 2015-05-01 Models for (unitarized) tensor resonances in VBS 2015-04-28 Bug fix in channel weights for event generation. 2015-04-18 Improved event record transfer WHIZARD/PYTHIA6 2015-03-19 POWHEG matching: alpha version ################################################################## 2015-02-27 RELEASE: version 2.2.5 2015-02-26 Abstract types for quantum numbers 2015-02-25 Read-in of StdHEP events, self-tests 2015-02-22 Bug fix for mother-daughter relations in showered/hadronized events 2015-02-20 Projection on polarization in intermediate states 2015-02-13 Correct treatment of beam remnants in event formats (also LC remnants) ################################################################## 2015-02-06 RELEASE: version 2.2.4 2015-02-06 Bug fix in event output 2015-02-05 LCIO event format supported 2015-01-30 Including state matrices in WHIZARD's internal IO Versioning for WHIZARD's internal IO Libtool update from 2.4.3 to 2.4.5 LCIO event output (beta version) 2015-01-27 Progress on NLO integration Fixing a bug for multiple processes in a single event file when using beam event files 2015-01-19 Bug fix for spin correlations evaluated in the rest frame of the mother particle 2015-01-17 Regression fix for statically linked processes from SARAH and FeynRules 2015-01-10 NLO: massive FKS emitters supported (experimental) 2015-01-06 MMHT2014 PDF sets included 2015-01-05 Handling mass degeneracies in auto_decays 2014-12-19 Fixing bug in rescan of event files ################################################################## 2014-11-30 RELEASE: version 2.2.3 2014-11-29 Beta version of LO continuum/NLL-threshold matched top threshold model for e+e- physics 2014-11-28 More internal refactoring: disentanglement of module dependencies 2014-11-21 OVM: O'Mega Virtual Machine, bytecode instructions instead of compiled Fortran code 2014-11-01 Higgs Singlet extension model included 2014-10-18 Internal restructuring of code; half-way WHIZARD main code file disassembled 2014-07-09 Alpha version of NLO infrastructure ################################################################## 2014-07-06 RELEASE: version 2.2.2 2014-07-05 CIRCE2: correlated LC beam spectra and GuineaPig Interface to LC machine parameters 2014-07-01 Reading LHEF for decayed/factorized/showered/ hadronized events 2014-06-25 Configure support for GoSAM/Ninja/Form/QGraf 2014-06-22 LHAPDF6 interface 2014-06-18 Module for automatic generation of radiation and loop infrastructure code 2014-06-11 Improved internal directory structure ################################################################## 2014-06-03 RELEASE: version 2.2.1 2014-05-30 Extensions of internal PDG arrays 2014-05-26 FastJet interface 2014-05-24 CJ12 PDFs included 2014-05-20 Regression fix for external models (via SARAH or FeynRules) ################################################################## 2014-05-18 RELEASE: version 2.2.0 2014-04-11 Multiple components: inclusive process definitions, syntax: process A + B + ... 2014-03-13 Improved PS mappings for e+e- ISR ILC TDR and CLIC spectra included in CIRCE1 2014-02-23 New models: AltH w\ Higgs for exclusion purposes, SM_rx for Dim 6-/Dim-8 operators, SSC for general strong interactions (w/ Higgs), and NoH_rx (w\ Higgs) 2014-02-14 Improved s-channel mapping, new on-shell production mapping (e.g. Drell-Yan) 2014-02-03 PRE-RELEASE: version 2.2.0_beta 2014-01-26 O'Mega: Feynman diagram generation possible (again) 2013-12-16 HOPPET interface for b parton matching 2013-11-15 PRE-RELEASE: version 2.2.0_alpha-4 2013-10-27 LHEF standards 1.0/2.0/3.0 implemented 2013-10-15 PRE-RELEASE: version 2.2.0_alpha-3 2013-10-02 PRE-RELEASE: version 2.2.0_alpha-2 2013-09-25 PRE-RELEASE: version 2.2.0_alpha-1 2013-09-12 PRE-RELEASE: version 2.2.0_alpha 2013-09-03 General 2HDM implemented 2013-08-18 Rescanning/recalculating events 2013-06-07 Reconstruction of complete event from 4-momenta possible 2013-05-06 Process library stacks 2013-05-02 Process stacks 2013-04-29 Single-particle phase space module 2013-04-26 Abstract interface for random number generator 2013-04-24 More object-orientation on modules Midpoint-rule integrator 2013-04-05 Object-oriented integration and event generation 2013-03-12 Processes recasted object-oriented: MEs, scales, structure functions First infrastructure for general Lorentz structures 2013-01-17 Object-orientated reworking of library and process core, more variable internal structure, unit tests 2012-12-14 Update Pythia version to 6.4.27 2012-12-04 Fix the phase in HAZ vertices 2012-11-21 First O'Mega unit tests, some infrastructure 2012-11-13 Bug fix in anom. HVV Lorentz structures ################################################################## 2012-09-18 RELEASE: version 2.1.1 2012-09-11 Model MSSM_Hgg with Hgg and HAA vertices 2012-09-10 First version of implementation of multiple interactions in WHIZARD 2012-09-05 Infrastructure for internal CKKW matching 2012-09-02 C, C++, Python API 2012-07-19 Fixing particle numbering in HepMC format ################################################################## 2012-06-15 RELEASE: version 2.1.0 2012-06-14 Analytical and kT-ordered shower officially released PYTHIA interface officially released 2012-05-09 Intrisince PDFs can be used for showering 2012-05-04 Anomalous Higgs couplings a la hep-ph/9902321 ################################################################## 2012-03-19 RELEASE: version 2.0.7 2012-03-15 Run IDs are available now More event variables in analysis Modified raw event format (compatibility mode exists) 2012-03-12 Bug fix in decay-integration order MLM matching steered completely internally now 2012-03-09 Special phase space mapping for narrow resonances decaying to 4-particle final states with far off-shell intermediate states Running alphas from PDF collaborations with builtin PDFs 2012-02-16 Bug fix in cascades decay infrastructure 2012-02-04 WHIZARD documentation compatible with TeXLive 2011 2012-02-01 Bug fix in FeynRules interface with --prefix flag 2012-01-29 Bug fix with name clash of O'Mega variable names 2012-01-27 Update internal PYTHIA to version 6.4.26 Bug fix in LHEF output 2012-01-21 Catching stricter automake 1.11.2 rules 2011-12-23 Bug fix in decay cascade setup 2011-12-20 Bug fix in helicity selection rules 2011-12-16 Accuracy goal reimplemented 2011-12-14 WHIZARD compatible with TeXLive 2011 2011-12-09 Option --user-target added ################################################################## 2011-12-07 RELEASE: version 2.0.6 2011-12-07 Bug fixes in SM_top_anom Added missing entries to HepMC format 2011-12-06 Allow to pass options to O'Mega Bug fix for HEPEVT block for showered/hadronized events 2011-12-01 Reenabled user plug-in for external code for cuts, structure functions, routines etc. 2011-11-29 Changed model SM_Higgs for Higgs phenomenology 2011-11-25 Supporting a Y, (B-L) Z' model 2011-11-23 Make WHIZARD compatible for MAC OS X Lion/XCode 4 2011-09-25 WHIZARD paper published: Eur.Phys.J. C71 (2011) 1742 2011-08-16 Model SM_QCD: QCD with one EW insertion 2011-07-19 Explicit output channel for dvips avoids printing 2011-07-10 Test suite for WHIZARD unit tests 2011-07-01 Commands for matrix element tests More OpenMP parallelization of kinematics Added unit tests 2011-06-23 Conversion of CIRCE2 from F77 to F90, major clean-up 2011-06-14 Conversion of CIRCE1 from F77 to F90 2011-06-10 OpenMP parallelization of channel kinematics (by Matthias Trudewind) 2011-05-31 RELEASE: version 1.97 2011-05-24 Minor bug fixes: update grids and elsif statement. ################################################################## 2011-05-10 RELEASE: version 2.0.5 2011-05-09 Fixed bug in final state flavor sums Minor improvements on phase-space setup 2011-05-05 Minor bug fixes 2011-04-15 WHIZARD as a precompiled 64-bit binary available 2011-04-06 Wall clock instead of cpu time for time estimates 2011-04-05 Major improvement on the phase space setup 2011-04-02 OpenMP parallelization for helicity loop in O'Mega matrix elements 2011-03-31 Tools for relocating WHIZARD and use in batch environments 2011-03-29 Completely static builds possible, profiling options 2011-03-28 Visualization of integration history 2011-03-27 Fixed broken K-matrix implementation 2011-03-23 Including the GAMELAN manual in the distribution 2011-01-26 WHIZARD analysis can handle hadronized event files 2011-01-17 MSTW2008 and CT10 PDF sets included 2010-12-23 Inclusion of NMSSM with Hgg couplings 2010-12-21 Advanced options for integration passes 2010-11-16 WHIZARD supports CTEQ6 and possibly other PDFs directly; data files included in the distribution ################################################################## 2010-10-26 RELEASE: version 2.0.4 2010-10-06 Bug fix in MSSM implementation 2010-10-01 Update to libtool 2.4 2010-09-29 Support for anomalous top couplings (form factors etc.) Bug fix for running gauge Yukawa SUSY couplings 2010-09-28 RELEASE: version 1.96 2010-09-21 Beam remnants and pT spectra for lepton collider re-enabled Restructuring subevt class 2010-09-16 Shower and matching are disabled by default PYTHIA as a conditional on these two options 2010-09-14 Possibility to read in beam spectra re-enabled (e.g. Guinea Pig) 2010-09-13 Energy scan as (pseudo-) structure functions re-implemented 2010-09-10 CIRCE2 included again in WHIZARD 2 and validated 2010-09-02 Re-implementation of asymmetric beam energies and collision angles, e-p collisions work, inclusion of a HERA DIS test case ################################################################## 2010-10-18 RELEASE: version 2.0.3 2010-08-08 Bug in CP-violating anomalous triple TGCs fixed 2010-08-06 Solving backwards compatibility problem with O'Caml 3.12.0 2010-07-12 Conserved quantum numbers speed up O'Mega code generation 2010-07-07 Attaching full ISR/FSR parton shower and MPI/ISR module Added SM model containing Hgg, HAA, HAZ vertices 2010-07-02 Matching output available as LHEF and STDHEP 2010-06-30 Various bug fixes, missing files, typos 2010-06-26 CIRCE1 completely re-enabled Chaining structure functions supported 2010-06-25 Partial support for conserved quantum numbers in O'Mega 2010-06-21 Major upgrade of the graphics package: error bars, smarter SINDARIN steering, documentation, and all that... 2010-06-17 MLM matching with PYTHIA shower included 2010-06-16 Added full CIRCE1 and CIRCE2 versions including full documentation and miscellanea to the trunk 2010-06-12 User file management supported, improved variable and command structure 2010-05-24 Improved handling of variables in local command lists 2010-05-20 PYTHIA interface re-enabled 2010-05-19 ASCII file formats for interfacing ROOT and gnuplot in data analysis ################################################################## 2010-05-18 RELEASE: version 2.0.2 2010-05-14 Reimplementation of visualization of phase space channels Minor bug fixes 2010-05-12 Improved phase space - elimination of redundancies 2010-05-08 Interface for polarization completed: polarized beams etc. 2010-05-06 Full quantum numbers appear in process log Integration results are usable as user variables Communication with external programs 2010-05-05 Split module commands into commands, integration, simulation modules 2010-05-04 FSR+ISR for the first time connected to the WHIZARD 2 core ################################################################## 2010-04-25 RELEASE: version 2.0.1 2010-04-23 Automatic compile and integrate if simulate is called Minor bug fixes in O'Mega 2010-04-21 Checkpointing for event generation Flush statements to use WHIZARD inside a pipe 2010-04-20 Reimplementation of signal handling in WGIZARD 2.0 2010-04-19 VAMP is now a separately configurable and installable unit of WHIZARD, included VAMP self-checks Support again compilation in quadruple precision 2010-04-06 Allow for logarithmic plots in GAMELAN, reimplement the possibility to set the number of bins 2010-04-15 Improvement on time estimates for event generation ################################################################## 2010-04-12 RELEASE: version 2.0.0 2010-04-09 Per default, the code for the amplitudes is subdivided to allow faster compiler optimization More advanced and unified and straightforward command language syntax Final bug fixes 2010-04-07 Improvement on SINDARIN syntax; printf, sprintf function thorugh a C interface 2010-04-05 Colorizing DAGs instead of model vertices: speed boost in colored code generation 2010-03-31 Generalized options for normalization of weighted and unweighted events Grid and weight histories added again to log files Weights can be used in analyses 2010-03-28 Cascade decays completely implemented including color and spin correlations 2010-03-07 Added new WHIZARD header with logo 2010-03-05 Removed conflict in O'Mega amplitudes between flavour sums and cascades StdHEP interface re-implemented 2010-03-03 RELEASE: version 2.0.0rc3 Several bug fixes for preventing abuse in input files OpenMP support for amplitudes Reimplementation of WHIZARD 1 HEPEVT ASCII event formats FeynRules interface successfully passed MSSM test 2010-02-26 Eliminating ghost gluons from multi-gluon amplitudes 2010-02-25 RELEASE: version 1.95 HEPEVT format from WHIZARD 1 re-implemented in WHIZARD 2 2010-02-23 Running alpha_s implemented in the FeynRules interface 2010-02-19 MSSM (semi-) automatized self-tests finalized 2010-02-17 RELEASE: version 1.94 2010-02-16 Closed memory corruption in WHIZARD 1 Fixed problems of old MadGraph and CompHep drivers with modern compilers Uncolored vertex selection rules for colored amplitudes in O'Mega 2010-02-15 Infrastructure for color correlation computation in O'Mega finished Forbidden processes are warned about, but treated as non-fatal 2010-02-14 Color correlation computation in O'Mega finalized 2010-02-10 Improving phase space mappings for identical particles in initial and final states Introduction of more extended multi-line error message 2010-02-08 First O'Caml code for computation of color correlations in O'Mega 2010-02-07 First MLM matching with e+ e- -> jets ################################################################## 2010-02-06 RELEASE: version 2.0.0rc2 2010-02-05 Reconsidered the Makefile structure and more extended tests Catch a crash between WHIZARD and O'Mega for forbidden processes Tensor products of arbitrary color structures in jet definitions 2010-02-04 Color correlation computation in O'Mega finalized ################################################################## 2010-02-03 RELEASE: version 2.0.0rc1 ################################################################## 2010-01-31 Reimplemented numerical helicity selection rules Phase space functionality of version 1 restored and improved 2009-12-05 NMSSM validated with FeynRules in WHIZARD 1 (Felix Braam) 2009-12-04 RELEASE: version 2.0.0alpha ################################################################## 2009-04-16 RELEASE: version 1.93 2009-04-15 Clean-up of Makefiles and configure scripts Reconfiguration of BSM model implementation extended supersymmetric models 2008-12-23 New model NMSSM (Felix Braam) SLHA2 added Bug in LHAPDF interface fixed 2008-08-16 Bug fixed in K matrix implementation Gravitino option in the MSSM added 2008-03-20 Improved color and flavor sums ################################################################## 2008-03-12 RELEASE: version 1.92 LHEF (Les Houches Event File) format added Fortran 2003 command-line interface (if supported by the compiler) Automated interface to colored models More bug fixes and workarounds for compiler compatibility ################################################################## 2008-03-06 RELEASE: version 1.91 New model K-matrix (resonances and anom. couplings in WW scattering) EWA spectrum Energy-scan pseudo spectrum Preliminary parton shower module (only from final-state quarks) Cleanup and improvements of configure process Improvements for O'Mega parameter files Quadruple precision works again More plotting options: lines, symbols, errors Documentation with PDF bookmarks enabled Various bug fixes 2007-11-29 New model UED ################################################################## 2007-11-23 RELEASE: version 1.90 O'Mega now part of the WHIZARD tree Madgraph/CompHEP disabled by default (but still usable) Support for LHAPDF (preliminary) Added new models: SMZprime, SM_km, Template Improved compiler recognition and compatibility Minor bug fixes ################################################################## 2006-06-15 RELEASE: version 1.51 Support for anomaly-type Higgs couplings (to gluon and photon/Z) Support for spin 3/2 and spin 2 New models: Little Higgs (4 versions), toy models for extra dimensions and gravitinos Fixes to the whizard.nw source documentation to run through LaTeX Intel 9.0 bug workaround (deallocation of some arrays) 2006-05-15 O'Mega RELEASE: version 0.11 merged JRR's O'Mega extensions ################################################################## 2006-02-07 RELEASE: version 1.50 To avoid confusion: Mention outdated manual example in BUGS file O'Mega becomes part of the WHIZARD generator 2006-02-02 [bug fix update] Bug fix: spurious error when writing event files for weighted events Bug fix: 'r' option for omega produced garbage for some particle names Workaround for ifort90 bug (crash when compiling whizard_event) Workaround for ifort90 bug (crash when compiling hepevt_common) 2006-01-27 Added process definition files for MSSM 2->2 processes Included beam recoil for EPA (T.Barklow) Updated STDHEP byte counts (for STDHEP 5.04.02) Fixed STDHEP compatibility (avoid linking of incomplete .so libs) Fixed issue with comphep requiring Xlibs on Opteron Fixed issue with ifort 8.x on Opteron (compiling 'signal' interface) Fixed color-flow code: was broken for omega with option 'c' and 'w' Workaround hacks for g95 compatibility 2005-11-07 O'Mega RELEASE: version 0.10 O'Mega, merged JRR's and WK's color hack for WHiZard O'Mega, EXPERIMENTAL: cache fusion tables (required for colors a la JRR/WK) O'Mega, make JRR's MSSM official ################################################################## 2005-10-25 RELEASE: version 1.43 Minor fixes in MSSM couplings (Higgs/3rd gen squarks). This should be final, since the MSSM results agree now completely with Madgraph and Sherpa User-defined lower and upper limits for split event file count Allow for counters (events, bytes) exceeding $2^{31}$ Revised checksum treatment and implementation (now MD5) Bug fix: missing process energy scale in raw event file ################################################################## 2005-09-30 RELEASE: version 1.42 Graphical display of integration history ('make history') Allow for switching off signals even if supported (configure option) 2005-09-29 Revised phase space generation code, in particular for flavor sums Negative cut and histogram codes use initial beams instead of initial parton momenta. This allows for computing, e.g., E_miss Support constant-width and zero-width options for O'Mega Width options now denoted by w:X (X=f,c,z). f option obsolescent Bug fix: colorized code: flipped indices could screw up result Bug fix: O'Mega with 'c' and 'w:f' option together (still some problem) Bug fix: dvips on systems where dvips defaults to lpr Bug fix: integer overflow if too many events are requested 2005-07-29 Allow for 2 -> 1 processes (if structure functions are on) 2005-07-26 Fixed and expanded the 'test' matrix element: Unit matrix element with option 'u' / default: normalized phase space ################################################################## 2005-07-15 RELEASE: version 1.41 Bug fix: no result for particle decay processes with width=0 Bug fix: line breaks in O'Mega files with color decomposition 2005-06-02 New self-tests (make test-QED / test-QCD / test-SM) check lists of 2->2 processes Bug fix: HELAS calling convention for wwwwxx and jwwwxx (4W-Vertex) 2005-05-25 Revised Makefile structure Eliminated obsolete references to ISAJET/SUSY (superseded by SLHA) 2005-05-19 Support for color in O'Mega (using color flow decomposition) New model QCD Parameter file changes that correspond to replaced SM module in O'Mega Bug fixes in MSSM (O'Mega) parameter file 2005-05-18 New event file formats, useful for LHC applications: ATHENA and Les Houches Accord (external fragmentation) Naive (i.e., leading 1/N) color factor now implemented both for incoming and outgoing partons 2005-01-26 include missing HELAS files for bundle pgf90 compatibility issues [note: still internal error in pgf90] ################################################################## 2004-12-13 RELEASE: version 1.40 compatibility fix: preprocessor marks in helas code now commented out minor bug fix: format string in madgraph source 2004-12-03 support for arbitray beam energies and directions allow for pT kick in structure functions bug fix: rounding error could result in zero cross section (compiler-dependent) 2004-10-07 simulate decay processes list fraction (of total width/cross section) instead of efficiency in process summary new cut/analysis parameters AA, AAD, CTA: absolute polar angle 2004-10-04 Replaced Madgraph I by Madgraph II. Main improvement: model no longer hardcoded introduced parameter reset_seed_each_process (useful for debugging) bug fix: color initialization for some processes was undefined 2004-09-21 don't compile unix_args module if it is not required ################################################################## 2004-09-20 RELEASE: version 1.30 g95 compatibility issues resolved some (irrelevant) memory leaks closed removed obsolete warning in circe1 manual update (essentially) finished 2004-08-03 O'Mega RELEASE: version 0.9 O'Mega, src/trie.mli, src/trie.ml: make interface compatible with the O'Caml 3.08 library (remains compatible with older versions). Implementation of unused functions still incomplete. 2004-07-26 minor fixes and improvements in make process 2004-06-29 workarounds for new Intel compiler bugs ... no rebuild of madgraph/comphep executables after 'make clean' bug fix in phase space routine: wrong energy for massive initial particles bug fix in (new) model interface: name checks for antiparticles pre-run checks for comphep improved ww-strong model file extended Model files particle name fixes, chep SM vertices included 2004-06-22 O'Mega RELEASE: version 0.8 O'Mega MSSM: sign of W+/W-/A and W+/W-/Z couplings 2004-05-05 Fixed bug in PDFLIB interface: p+pbar was initialized as p+p (ThO) NAG compiler: set number of continuation lines to 200 as default Extended format for cross section summary; appears now in whizard.out Fixed 'bundle' feature 2004-04-28 Fixed compatibility with revised O'Mega SM_ac model Fixed problem with x=0 or x=1 when calling PDFLIB (ThO) Fixed bug in comphep module: Vtb was overlooked ################################################################## 2004-04-15 RELEASE: version 1.28 Fixed bug: Color factor was missing for O'Mega processes with four quarks and more Manual partially updated 2004-04-08 Support for grid files in binary format New default value show_histories=F (reduce output file size) Revised phase space switches: removed annihilation_lines, removed s_channel_resonance, changed meaning of extra_off_shell_lines, added show_deleted_channels Bug fixed which lead to omission of some phase space channels Color flow guessed only if requested by guess_color_flow 2004-03-10 New model interface: Only one model name specified in whizard.prc All model-dependent files reside in conf/models (modellib removed) 2004-03-03 Support for input/output in SUSY Les Houches Accord format Split event files if requested Support for overall time limit Support for CIRCE and CIRCE2 generator mode Support for reading beam events from file 2004-02-05 Fixed compiler problems with Intel Fortran 7.1 and 8.0 Support for catching signals ################################################################## 2003-08-06 RELEASE: version 1.27 User-defined PDF libraries as an alternative to the standard PDFLIB 2003-07-23 Revised phase space module: improved mappings for massless particles, equivalences of phase space channels are exploited Improved mapping for PDF (hadron colliders) Madgraph module: increased max number of color flows from 250 to 1000 ################################################################## 2003-06-23 RELEASE: version 1.26 CIRCE2 support Fixed problem with 'TC' integer kind [Intel compiler complained] 2003-05-28 Support for drawing histograms of grids Bug fixes for MSSM definitions ################################################################## 2003-05-22 RELEASE: version 1.25 Experimental MSSM support with ISAJET interface Improved capabilities of generating/analyzing weighted events Optional drawing phase space diagrams using FeynMF ################################################################## 2003-01-31 RELEASE: version 1.24 A few more fixes and workarounds (Intel and Lahey compiler) 2003-01-15 Fixes and workarounds needed for WHIZARD to run with Intel compiler Command-line option interface for the Lahey compiler Bug fix: problem with reading whizard.phs ################################################################## 2002-12-10 RELEASE: version 1.23 Command-line options (on some systems) Allow for initial particles in the event record, ordered: [beams, initials] - [remnants] - outgoing partons Support for PYTHIA 6.2: Les Houches external process interface String pythia_parameters can be up to 1000 characters long Select color flow states in (internal) analysis Bug fix in color flow content of raw event files Support for transversal polarization of fermion beams Cut codes: PHI now for absolute azimuthal angle, DPHI for distance 'Test' matrix elements optionally respect polarization User-defined code can be inserted for spectra, structure functions and fragmentation Time limits can be specified for adaptation and simulation User-defined file names and file directory Initial weights in input file no longer supported Bug fix in MadGraph (wave function counter could overflow) Bug fix: Gamelan (graphical analysis) was not built if noweb absent ################################################################## 2002-03-16 RELEASE: version 1.22 Allow for beam remnants in the event record 2002-03-01 Handling of aliases in whizard.prc fixed (aliases are whole tokens) 2002-02-28 Optimized phase space handling routines (total execution time reduced by 20-60%, depending on process) ################################################################## 2002-02-26 RELEASE: version 1.21 Fixed ISR formula (ISR was underestimated in previous versions). New version includes ISR in leading-log approximation up to third order. Parameter ISR_sqrts renamed to ISR_scale. ################################################################## 2002-02-19 RELEASE: version 1.20 New process-generating method 'test' (dummy matrix element) Compatibility with autoconf 2.50 and current O'Mega version 2002-02-05 Prevent integration channels from being dropped (optionally) New internal mapping for structure functions improves performance Old whizard.phx file deleted after recompiling (could cause trouble) 2002-01-24 Support for user-defined cuts and matrix element reweighting STDHEP output now written by write_events_format=20 (was 3) 2002-01-16 Improved structure function handling; small changes in user interface: new parameter structured_beams in &process_input parameter fixed_energy in &beam_input removed Support for multiple initial states Eta-phi (cone) cut possible (hadron collider applications) Fixed bug: Whizard library was not always recompiled when necessary Fixed bug: Default cuts were insufficient in some cases Fixed bug: Unusable phase space mappings generated in some cases 2001-12-06 Reorganized document source 2001-12-05 Preliminary CIRCE2 support (no functionality yet) 2001-11-27 Intel compiler support (does not yet work because of compiler bugs) New cut and analysis mode cos-theta* and related Fixed circular jetset_interface dependency warning Some broadcast routines removed (parallel support disabled anyway) Minor shifts in cleanup targets (Makefiles) Modified library search, check for pdflib8* 2001-08-06 Fixed bug: I/O unit number could be undefined when reading phase space Fixed bug: Unitialized variable could cause segfault when event generation was disabled Fixed bug: Undefined subroutine in CIRCE replacement module Enabled feature: TGCs in O'Mega (not yet CompHEP!) matrix elements (CompHEP model sm-GF #5, O'Mega model SM_ac) Fixed portability issue: Makefile did rely on PWD environment variable Fixed portability issue: PYTHIA library search ambiguity resolved 2001-08-01 Default whizard.prc and whizard.in depend on activated modules Fixed bug: TEX=latex was not properly enabled when making plots 2001-07-20 Fixed output settings in PERL script calls Cache enabled in various configure checks 2001-07-13 Support for multiple processes in a single WHIZARD run. The integrations are kept separate, but the generated events are mixed The whizard.evx format has changed (incompatible), including now the color flow information for PYTHIA fragmentation Output files are now process-specific, except for the event file Phase space file whizard.phs (if present) is used only as input, program-generated phase space is now in whizard.phx 2001-07-10 Bug fix: Undefined parameters in parameters_SM_ac.f90 removed 2001-07-04 Bug fix: Compiler options for the case OMEGA is disabled Small inconsistencies in whizard.out format fixed 2001-07-01 Workaround for missing PDFLIB dummy routines in PYTHIA library ################################################################## 2001-06-30 RELEASE: version 1.13 Default path /cern/pro/lib in configure script 2001-06-20 New fragmentation option: Interface for PYTHIA with full color flow information, beam remnants etc. 2001-06-18 Severe bug fixed in madgraph interface: 3-gluon coupling was missing Enabled color flow information in madgraph 2001-06-11 VAMP interface module rewritten Revised output format: Multiple VAMP iterations count as one WHIZARD iteration in integration passes 1 and 3 Improved message and error handling Bug fix in VAMP: handle exceptional cases in rebinning_weights 2001-05-31 new parameters for grid adaptation: accuracy_goal and efficiency_goal ################################################################## 2001-05-29 RELEASE: version 1.12 bug fixes (compilation problems): deleted/modified unused functions 2001-05-16 diagram selection improved and documented 2001-05-06 allow for disabling packages during configuration 2001-05-03 slight changes in whizard.out format; manual extended ################################################################## 2001-04-20 RELEASE: version 1.11 fixed some configuration and compilation problems (PDFLIB etc.) 2001-04-18 linked PDFLIB: support for quark/gluon structure functions 2001-04-05 parameter interface written by PERL script SM_ac model file: fixed error in continuation line 2001-03-13 O'Mega, O'Caml 3.01: incompatible changes O'Mega, src/trie.mli: add covariance annotation to T.t This breaks O'Caml 3.00, but is required for O'Caml 3.01. O'Mega, many instances: replace `sig include Module.T end' by `Module.T', since the bug is fixed in O'Caml 3.01 2001-02-28 O'Mega, src/model.mli: new field Model.vertices required for model functors, will retire Model.fuse2, Model.fuse3, Model.fusen soon. ################################################################## 2001-03-27 RELEASE: version 1.10 reorganized the modules as libraries linked PYTHIA: support for parton fragmentation 2000-12-14 fixed some configuration problems (if noweb etc. are absent) ################################################################## 2000-12-01 RELEASE of first public version: version 1.00beta