Code indexing in gitaly is broken and leads to code not being visible to the user. We work on the issue with highest priority.

Skip to content
Snippets Groups Projects
Commit 4662a0fb authored by schalch_n's avatar schalch_n
Browse files

Added config and menu for Moller validation

parent 14ea00fd
No related branches found
No related tags found
No related merge requests found
## Generated at 15:53 on March 31 2020 by schalch_n
# git version: moller (a6153a7)
# To re-generate, run python tools/pymule create \
# --seeds 65518 44998 28975 36136 87379 \
# -xi 0.01 0.03 0.1 0.3 1.0 \
# --flavour ee1GeV \
# --genprocess ee2ee \
# --output-dir ee2ee0504191 \
# --prog mcmule \
# --stat 0,1000,20,2000,30 \
# --stat R,3000,30,10000,70 \
# --stat F,1500,20,2500,30
# specify the program to run relative to `pwd`
binary=mcmule
# specify the output folder
folder=ee2ee0504191/
# Specify the variables nenter_ad, itmx_ad, nenter and itmx
# for each piece you want to run.
declare -A STAT=(
["ee2ee0"]="1000\n20\n2000\n30"
["ee2eeR"]="3000\n30\n10000\n70"
["ee2eeF"]="1500\n20\n2500\n30"
)
\ No newline at end of file
## Generated at 15:53 on March 31 2020 by schalch_n
# git version: moller (a6153a7)
# To re-generate, run python tools/pymule create \
# --seeds 65518 44998 28975 36136 87379 \
# -xi 0.01 0.03 0.1 0.3 1.0 \
# --flavour ee1GeV \
# --genprocess ee2ee \
# --output-dir ee2ee0504191 \
# --prog mcmule \
# --stat 0,1000,20,2000,30 \
# --stat R,3000,30,10000,70 \
# --stat F,1500,20,2500,30
conf ee2ee0504191/ee2ee-ee1GeV.conf
run 65518 1.000000 ee2ee0 ee1GeV 8
run 44998 1.000000 ee2ee0 ee1GeV 8
run 28975 1.000000 ee2ee0 ee1GeV 8
run 36136 1.000000 ee2ee0 ee1GeV 8
run 87379 1.000000 ee2ee0 ee1GeV 8
run 65518 0.010000 ee2eeR ee1GeV 8
run 44998 0.010000 ee2eeR ee1GeV 8
run 28975 0.010000 ee2eeR ee1GeV 8
run 36136 0.010000 ee2eeR ee1GeV 8
run 87379 0.010000 ee2eeR ee1GeV 8
run 65518 0.030000 ee2eeR ee1GeV 8
run 44998 0.030000 ee2eeR ee1GeV 8
run 28975 0.030000 ee2eeR ee1GeV 8
run 36136 0.030000 ee2eeR ee1GeV 8
run 87379 0.030000 ee2eeR ee1GeV 8
run 65518 0.100000 ee2eeR ee1GeV 8
run 44998 0.100000 ee2eeR ee1GeV 8
run 28975 0.100000 ee2eeR ee1GeV 8
run 36136 0.100000 ee2eeR ee1GeV 8
run 87379 0.100000 ee2eeR ee1GeV 8
run 65518 0.300000 ee2eeR ee1GeV 8
run 44998 0.300000 ee2eeR ee1GeV 8
run 28975 0.300000 ee2eeR ee1GeV 8
run 36136 0.300000 ee2eeR ee1GeV 8
run 87379 0.300000 ee2eeR ee1GeV 8
run 65518 1.000000 ee2eeR ee1GeV 8
run 44998 1.000000 ee2eeR ee1GeV 8
run 28975 1.000000 ee2eeR ee1GeV 8
run 36136 1.000000 ee2eeR ee1GeV 8
run 87379 1.000000 ee2eeR ee1GeV 8
run 65518 0.010000 ee2eeF ee1GeV 8
run 44998 0.010000 ee2eeF ee1GeV 8
run 28975 0.010000 ee2eeF ee1GeV 8
run 36136 0.010000 ee2eeF ee1GeV 8
run 87379 0.010000 ee2eeF ee1GeV 8
run 65518 0.030000 ee2eeF ee1GeV 8
run 44998 0.030000 ee2eeF ee1GeV 8
run 28975 0.030000 ee2eeF ee1GeV 8
run 36136 0.030000 ee2eeF ee1GeV 8
run 87379 0.030000 ee2eeF ee1GeV 8
run 65518 0.100000 ee2eeF ee1GeV 8
run 44998 0.100000 ee2eeF ee1GeV 8
run 28975 0.100000 ee2eeF ee1GeV 8
run 36136 0.100000 ee2eeF ee1GeV 8
run 87379 0.100000 ee2eeF ee1GeV 8
run 65518 0.300000 ee2eeF ee1GeV 8
run 44998 0.300000 ee2eeF ee1GeV 8
run 28975 0.300000 ee2eeF ee1GeV 8
run 36136 0.300000 ee2eeF ee1GeV 8
run 87379 0.300000 ee2eeF ee1GeV 8
run 65518 1.000000 ee2eeF ee1GeV 8
run 44998 1.000000 ee2eeF ee1GeV 8
run 28975 1.000000 ee2eeF ee1GeV 8
run 36136 1.000000 ee2eeF ee1GeV 8
run 87379 1.000000 ee2eeF ee1GeV 8
!!!!!!!!!!!!!!!!!!!!!
MODULE USER
!!!!!!!!!!!!!!!!!!!!!
use functions
implicit none
!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!
integer, parameter :: nr_q = 3
integer, parameter :: nr_bins = 140
real, parameter :: &
min_val(nr_q) = (/ 20., 0.5, -14000. /)
real, parameter :: &
max_val(nr_q) = (/ 160., 4., 0. /)
real(kind=prec) :: vcut
integer hardcut
!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!
!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!
!! ============================================== !!
!! DO NOT EVEN THINK ABOUT CHANGING ANYTHING HERE !!
!! ============================================== !!
logical :: pass_cut(nr_q)
character (len = 6), dimension(nr_q) :: names
character(len=10) :: filenamesuffix
!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!==!
!! ----------------------------------------- !!
!! There are two versions of binning !!
!! One for computing d \sigma/ d Q !!
!! One for computing Q d \sigma/ d Q !!
!! choose by setting the variable bin_kind !!
!! ----------------------------------------- !!
integer :: bin_kind = 0 !! 0 for d \sig/dQ; +1 for Q d \sig/dQ;
contains
SUBROUTINE FIX_MU
!! ==== Specify the scale mu AND musq==mu**2 ==== !!
mu = Me
musq = mu**2
END SUBROUTINE FIX_MU
SUBROUTINE USERINIT
! This is called without arguments once as soon as McMule
! starts and has read all other configuration, i.e. you can
! access which_piece and flavour. Use this to read any
! further information from the user (like cut configuration
! etc). You do not have to print the hashes - this is
! already taken care of - but you are very much invited to
! include information of what it is you are doing
!
! If you are using the cut channel of the menu, you may need to set
! the filenamesuffix variable which is appended to the name of the
! VEGAS file.
! Example for reading a cut:
! integer cut
! read*,cut
! write(filenamesuffix,'(I2)') cut
integer cut ! This shall be between 0 and 9 (incl)
read*, cut
vcut = (1+cut)/10.
write(filenamesuffix,'(I1)') cut
hardcut = 8
print*, "This calculates the Moller scattering as implemented"
print*, "in [hep-ph/0504191] with vcut = ",vcut
END SUBROUTINE
FUNCTION QUANT(q1,q2,q3,q4,q5,q6,q7)
real (kind=prec), intent(in) :: q1(4),q2(4),q3(4),q4(4), q5(4),q6(4),q7(4)
real (kind=prec) :: gah(4), gas(4), tt, ss, theta, slam, v, vmax
real (kind=prec) :: q1rest(4),q2rest(4),q3rest(4),q4rest(4)
real (kind=prec) :: quant(nr_q)
! pol1 = (/ 0._prec, 0._prec, 0._prec, 0._prec /)
!! ==== keep the line below in any case ==== !!
pass_cut = .true.
call fix_mu
q1rest = boost_rf(q2, q1)
q2rest = boost_rf(q2, q2)
q3rest = boost_rf(q2, q3)
q4rest = boost_rf(q2, q4)
ss = sq(q1+q2)
tt = sq(q1-q3)
slam = sq(q1 - q3 + q2)
v = slam - me**2
vmax = ss + tt
theta =acos(1 + 2*tt/ss)
if(theta < pi / 180 * 20 .or. theta > pi / 180 * 160) then
pass_cut = .false.
end if
if(v > vcut * vmax) pass_cut = .false.
names(1) = "thcms"
quant(1) = 180 / pi * theta
names(2) = "thlab"
quant(2) = acos(cos_th(q1rest,q3rest)) * 180 / pi
names(3) = "t13"
quant(3) = tt
END FUNCTION QUANT
!!!!!!!!!!!!!!!!!!!!!!!
END MODULE USER
!!!!!!!!!!!!!!!!!!!!!!!
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment