Page Menu
Home
HEPForge
Search
Configure Global Search
Log In
Files
F19244222
tauola_interface.f90
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Award Token
Flag For Later
Size
4 KB
Referenced Files
None
Subscribers
None
tauola_interface.f90
View Options
!
! 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
iso_varying_string
,
string_t
=>
varying_string
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
)
logical
,
save
,
public
::
trans_spin
logical
,
save
,
public
::
tau_pol_vec
integer
,
parameter
::
n_pyjets_max
=
4000
double precision
,
dimension
(
n_pyjets_max
)
::
tauspin_pyjets
double precision
,
external
::
wthiggs
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
interface
module function
wo_tauola_get_helicity_mod
(
ip
)
result
(
the_helicity
)
integer
,
intent
(
in
)
::
ip
integer
::
the_helicity
end function
wo_tauola_get_helicity_mod
module subroutine
wo_tauola_get_helicity
(
ip
,
the_helicity
)
integer
,
intent
(
in
)
::
ip
integer
,
intent
(
out
)
::
the_helicity
end subroutine
wo_tauola_get_helicity
module subroutine
wo_tauola_pytaud
(
itau
,
iorig
,
kforig
,
ndecay
)
integer
,
intent
(
in
)
::
itau
integer
,
intent
(
in
)
::
iorig
integer
,
intent
(
in
)
::
kforig
integer
,
intent
(
out
)
::
ndecay
end subroutine
wo_tauola_pytaud
module subroutine
wo_tauola_init_call
(
taudec_settings
)
type
(
taudec_settings_t
),
intent
(
in
)
::
taudec_settings
end subroutine
wo_tauola_init_call
module 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
end subroutine
taudec_settings_init
module subroutine
taudec_settings_write
(
taudec_settings
,
unit
)
class
(
taudec_settings_t
),
intent
(
in
)
::
taudec_settings
integer
,
intent
(
in
),
optional
::
unit
end subroutine
taudec_settings_write
end interface
interface
function
pyr
(
i_dum
)
implicit none
double precision
::
pyr
integer
,
intent
(
in
)
::
i_dum
end function
pyr
end interface
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
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Sep 30, 4:40 AM (15 h, 33 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
6564747
Default Alt Text
tauola_interface.f90 (4 KB)
Attached To
Mode
rWHIZARDSVN whizardsvn
Attached
Detach File
Event Timeline
Log In to Comment