summaryrefslogtreecommitdiff
path: root/var
diff options
context:
space:
mode:
authoriarspider <iarspider@gmail.com>2021-04-01 17:06:03 +0200
committerGitHub <noreply@github.com>2021-04-01 17:06:03 +0200
commit1e70ee38a25d0203664b3f2acf9a977dfdeef8dc (patch)
tree0ceb5119d30101bbd78a25ee6988b70e92469ac4 /var
parente22b2ff5c999d3ec49354ecaa6bf1d3986b22125 (diff)
downloadspack-1e70ee38a25d0203664b3f2acf9a977dfdeef8dc.tar.gz
spack-1e70ee38a25d0203664b3f2acf9a977dfdeef8dc.tar.bz2
spack-1e70ee38a25d0203664b3f2acf9a977dfdeef8dc.tar.xz
spack-1e70ee38a25d0203664b3f2acf9a977dfdeef8dc.zip
New version of OpenLoops (#22240)
New version of OpenLoops; new list of processes; update lcg process collection Add script to scrape openloops website for process list
Diffstat (limited to 'var')
-rw-r--r--var/spack/repos/builtin/packages/openloops/get-process-list.py47
-rw-r--r--var/spack/repos/builtin/packages/openloops/package.py89
-rw-r--r--var/spack/repos/builtin/packages/openloops/sft3.coll171
3 files changed, 264 insertions, 43 deletions
diff --git a/var/spack/repos/builtin/packages/openloops/get-process-list.py b/var/spack/repos/builtin/packages/openloops/get-process-list.py
new file mode 100644
index 0000000000..9876e5888f
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/get-process-list.py
@@ -0,0 +1,47 @@
+from html.parser import HTMLParser
+import re
+import urllib.request
+
+
+class my_html_parser(HTMLParser):
+ def error(self, message):
+ pass
+
+ def __init__(self):
+ super().__init__()
+ self.state = 0
+ self.processes = []
+
+ def handle_starttag(self, tag, attrs):
+ if tag == 'tr' and self.state == 2:
+ for att in attrs:
+ if att[0] == 'id':
+ return
+ self.state = 3
+ if tag == 'td' and self.state == 3:
+ self.state = 4
+ pass
+
+ def handle_endtag(self, tag):
+ if tag == 'table' and self.state == 1:
+ self.state = 2
+ pass
+
+ def handle_data(self, data):
+ # print("Encountered some data :", data)
+ if data == 'Categories' and self.state == 0:
+ self.state = 1
+
+ if self.state == 4:
+ if re.findall('[^a-z0-9_]', data):
+ return
+ self.processes.append(data)
+ self.state = 2
+
+
+if __name__ == '__main__':
+ url = "https://openloops.hepforge.org/process_library.php?repo=public"
+ data = urllib.request.urlopen(url).read()
+ parser = my_html_parser()
+ parser.feed(data.decode('UTF8'))
+ print(parser.processes)
diff --git a/var/spack/repos/builtin/packages/openloops/package.py b/var/spack/repos/builtin/packages/openloops/package.py
index d1523a3272..1ff72c6088 100644
--- a/var/spack/repos/builtin/packages/openloops/package.py
+++ b/var/spack/repos/builtin/packages/openloops/package.py
@@ -15,51 +15,52 @@ class Openloops(Package):
at NLO QCD and NLO EW. """
homepage = "https://openloops.hepforge.org/"
- url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
+ url = "https://openloops.hepforge.org/downloads?f=OpenLoops-2.1.1.tar.gz"
tags = ['hep']
+ version('2.1.2', sha256='f52575cae3d70b6b51a5d423e9cd0e076ed5961afcc015eec00987e64529a6ae')
version('2.1.1', sha256='f1c47ece812227eab584e2c695fef74423d2f212873f762b8658f728685bcb91')
- all_processes = (
- "tbln", "tbln_ew", "tbqq", "tbw", "pptttt", "pptttt_ew", "pptt",
- "pptt_ew", "ppttbb", "ppttj", "ppttj_ew", "ppttjj",
- "pptaj", "pptajj", "pptllj", "pptlljj", "pptln", "pptw", "pptwj",
- "pptzj", "pptzjj", "ppthj", "ppthjj", "pptj",
- "pptjj", "ppjj", "ppjj_ew", "ppjjj", "ppjjj_ew", "ppjjj_nf5", "ppjjjj",
- "pplllvvv_ew", "ppatt", "ppatt_ew",
- "ppattj", "pplltt", "pplltt_ew", "ppllttj", "ppllttj_ew", "pplntt",
- "pplnttj", "ppwtt", "ppwtt_ew", "ppwttj",
- "ppwttj_ew", "ppztt", "ppztt_ew", "ppzttj", "ppaatt", "ppwwtt",
- "ppzatt", "ppzztt", "ppvvvv", "ppaaaj2", "ppllaa",
- "ppllaaj", "pplllla", "ppvvv", "ppvvv2", "ppvvv_ew", "ppvvvj",
- "ppaajj", "ppaajj2", "ppaajjj", "pplla", "pplla2",
- "pplla_ew", "ppllaj", "ppllaj2", "ppllaj_ew", "ppllaj_nf5", "ppllajj",
- "ppllll", "ppllll2", "ppllll2_nf5",
- "ppllll2_onlyh", "ppllll_ew", "ppllllj", "ppllllj2", "ppllllj2_nf5",
- "ppllllj2_nf5_notridr", "ppllllj2_nf5_sr",
- "ppllllj2_onlyh", "ppllnnjj_ew", "ppllnnjj_vbs", "pplnajj", "ppvv",
- "ppvv2", "ppvv_ew", "ppvvj", "ppvvj2",
- "ppvvj_ew", "ppwajj", "ppwwjj", "ppzajj", "ppzwj_ew", "ppzwjj",
- "ppzzjj", "ppajj", "ppajj2", "ppajj_ew", "ppajjj",
- "ppllj", "ppllj2", "ppllj_ew", "ppllj_nf5", "pplljj", "pplljj_ew",
- "pplljjj", "pplnj_ckm", "pplnjj", "pplnjj_ckm",
- "pplnjj_ew", "pplnjjj", "ppnnjj_ew", "ppnnjjj", "ppvj", "ppvj2",
- "ppvj_ew", "ppwj_ckm", "ppwjj", "ppwjj_ckm",
- "ppwjj_ew", "ppwjjj", "ppzjj", "ppzjj_ew", "ppzjjj", "pphtt",
- "pphtt_ew", "pphttj", "pphlltt", "pphll", "pphll2",
- "pphll_ew", "pphllj", "pphllj2", "pphllj_ew", "pphlljj", "pphlljj_top",
- "pphlnj_ckm", "pphlnjj", "pphv", "pphv_ew",
- "pphwjj", "pphz2", "pphzj2", "pphzjj", "pphhtt", "pphhv", "pphhh2",
- "heftpphh", "heftpphhj", "heftpphhjj", "pphh2",
- "pphhj2", "pphhjj2", "pphhjj_vbf", "bbhj", "heftpphj", "heftpphjj",
- "heftpphjjj", "pphbb", "pphbbj", "pphj2",
- "pphjj2", "pphjj_vbf", "pphjj_vbf_ew", "pphjjj2", "eetttt", "eettttj",
- "eellllbb", "eett", "eett_ew", "eettj",
- "eettjj", "eevtt", "eevttj", "eevttjj", "eevvtt", "eevvttj",
- "eellll_ew", "eevv_ew", "eevvjj", "eell_ew", "eevjj",
- "eehtt", "eehttj", "eehll_ew", "eehvtt", "eehhtt", "heftppllj",
- "heftpplljj", "heftpplljjj")
+ all_processes = ['tbln', 'tbln_ew', 'tbqq', 'tbw', 'pptttt', 'pptttt_ew',
+ 'pptt', 'pptt_ew', 'ppttbb', 'ppttj', 'ppttj_ew', 'ppttjj',
+ 'pptaj', 'pptajj', 'pptllj', 'pptlljj', 'pptln', 'pptw',
+ 'pptwj', 'pptzj', 'pptzjj', 'ppthj', 'ppthjj', 'pptj',
+ 'pptjj', 'ppjj', 'ppjj_ew', 'ppjjj', 'ppjjj_ew', 'ppjjj_nf5',
+ 'ppjjjj', 'pplllvvv_ew', 'ppatt', 'ppatt_ew', 'ppattj',
+ 'pplltt', 'pplltt_ew', 'ppllttj', 'ppllttj_ew', 'pplntt',
+ 'pplnttj', 'ppwtt', 'ppwtt_ew', 'ppwttj', 'ppwttj_ew',
+ 'ppztt', 'ppztt_ew', 'ppzttj', 'ppaatt', 'ppwwtt', 'ppzatt',
+ 'ppzztt', 'ppvvvv', 'ppaaaj2', 'ppllaa', 'ppllaaj',
+ 'pplllla', 'ppvvv', 'ppvvv2', 'ppvvv_ew', 'ppvvvj',
+ 'ppaajj', 'ppaajj2', 'ppaajjj', 'pplla', 'pplla2',
+ 'pplla_ew', 'ppllaj', 'ppllaj2', 'ppllaj_ew', 'ppllaj_nf5',
+ 'ppllajj', 'ppllll', 'ppllll2', 'ppllll2_nf5',
+ 'ppllll2_onlyh', 'ppllll_ew', 'ppllllbb', 'ppllllj',
+ 'ppllllj2', 'ppllllj2_nf5', 'ppllllj2_nf5_notridr',
+ 'ppllllj2_nf5_sr', 'ppllllj2_onlyh', 'ppllnnjj_ew',
+ 'ppllnnjj_vbs', 'pplnaj_ckm', 'pplnajj', 'pplnajj_ckm',
+ 'ppvv', 'ppvv2', 'ppvv_ew', 'ppvvj', 'ppvvj2', 'ppvvj_ew',
+ 'ppwajj', 'ppwwjj', 'ppzajj', 'ppzwj_ew', 'ppzwjj', 'ppzzjj',
+ 'ppajj', 'ppajj2', 'ppajj_ew', 'ppajjj', 'ppllj', 'ppllj2',
+ 'ppllj_ew', 'ppllj_nf5', 'pplljj', 'pplljj_ew', 'pplljjj',
+ 'pplnj_ckm', 'pplnjj', 'pplnjj_ckm', 'pplnjj_ew', 'pplnjjj',
+ 'ppnnjj_ew', 'ppnnjjj', 'ppvj', 'ppvj2', 'ppvj_ew',
+ 'ppwj_ckm', 'ppwjj', 'ppwjj_ckm', 'ppwjj_ew', 'ppwjjj',
+ 'ppzjj', 'ppzjj_ew', 'ppzjjj', 'pphtt', 'pphtt_ew', 'pphttj',
+ 'pphlltt', 'pphll', 'pphll2', 'pphll_ew', 'pphllj',
+ 'pphllj2', 'pphllj_ew', 'pphlljj', 'pphlljj_top',
+ 'pphlnj_ckm', 'pphlnjj', 'pphv', 'pphv_ew', 'pphwjj',
+ 'pphz2', 'pphzj2', 'pphzjj', 'pphhtt', 'pphhv', 'pphhh2',
+ 'heftpphh', 'heftpphhj', 'heftpphhjj', 'pphh2', 'pphhj2',
+ 'pphhjj2', 'pphhjj_vbf', 'bbhj', 'heftpphj', 'heftpphjj',
+ 'heftpphjjj', 'pphbb', 'pphbbj', 'pphj2', 'pphjj2',
+ 'pphjj_vbf', 'pphjj_vbf_ew', 'pphjjj2', 'eetttt', 'eettttj',
+ 'eellllbb', 'eett', 'eett_ew', 'eettj', 'eettjj', 'eevtt',
+ 'eevttj', 'eevttjj', 'eevvtt', 'eevvttj', 'eellll_ew',
+ 'eevv_ew', 'eevvjj', 'eell_ew', 'eevjj', 'eehtt', 'eehttj',
+ 'eehll_ew', 'eehvtt', 'eehhtt', 'heftppllj', 'heftpplljj',
+ 'heftpplljjj']
variant('compile_extra', default=False,
description='Compile real radiation tree amplitudes')
@@ -69,7 +70,7 @@ class Openloops(Package):
values=disjoint_sets(('all.coll',), ('lhc.coll',), ('lcg.coll',),
all_processes).with_default('lhc.coll'))
- variant('num_jobs', description='Number of parallel jobs to run. ' +
+ variant('num_jobs', description='Number of parallel jobs to run. ' +
'Set to 1 if compiling a large number' +
'of processes (e.g. lcg.coll)', default=0)
depends_on('python', type=("build", "run"))
@@ -97,7 +98,7 @@ class Openloops(Package):
f.write('fortran_compiler = {0}\n'.format(env['SPACK_FC']))
if self.spec.satisfies('@1.3.1') and not is_intel:
f.write('gfortran_f_flags = -ffree-line-length-none\n')
- if self.spec.satisfies('@2.1.1') and not is_intel:
+ if self.spec.satisfies('@2.1.1:') and not is_intel:
f.write('gfortran_f_flags = -ffree-line-length-none ' +
'-fdollar-ok ')
if self.spec.target.family == 'aarch64':
@@ -107,8 +108,10 @@ class Openloops(Package):
if self.spec.satisfies('@:1.999.999 processes=lcg.coll'):
copy(join_path(os.path.dirname(__file__), 'sft1.coll'), 'lcg.coll')
- elif self.spec.satisfies('@2:2.999.999 processes=lcg.coll'):
+ elif self.spec.satisfies('@2:2.1.2 processes=lcg.coll'):
copy(join_path(os.path.dirname(__file__), 'sft2.coll'), 'lcg.coll')
+ elif self.spec.satisfies('@2.1.2:2.99.99 processes=lcg.coll'):
+ copy(join_path(os.path.dirname(__file__), 'sft3.coll'), 'lcg.coll')
def build(self, spec, prefix):
scons = Executable('./scons')
diff --git a/var/spack/repos/builtin/packages/openloops/sft3.coll b/var/spack/repos/builtin/packages/openloops/sft3.coll
new file mode 100644
index 0000000000..a4d7715534
--- /dev/null
+++ b/var/spack/repos/builtin/packages/openloops/sft3.coll
@@ -0,0 +1,171 @@
+tbln
+tbln_ew
+tbqq
+tbw
+pptttt
+pptttt_ew
+pptt
+pptt_ew
+ppttbb
+ppttj
+ppttj_ew
+ppttjj
+pptaj
+pptajj
+pptllj
+pptlljj
+pptln
+pptw
+pptwj
+pptzj
+pptzjj
+ppthj
+ppthjj
+pptj
+pptjj
+ppjj
+ppjj_ew
+ppjjj
+ppjjj_ew
+ppjjj_nf5
+ppjjjj
+pplllvvv_ew
+ppatt
+ppatt_ew
+ppattj
+pplltt
+pplltt_ew
+ppllttj
+ppllttj_ew
+pplntt
+pplnttj
+ppwtt
+ppwtt_ew
+ppwttj
+ppwttj_ew
+ppztt
+ppztt_ew
+ppzttj
+ppaatt
+ppwwtt
+ppzatt
+ppzztt
+ppvvvv
+ppaaaj2
+ppllaa
+ppllaaj
+pplllla
+ppvvv
+ppvvv2
+ppvvv_ew
+ppvvvj
+ppaajj
+ppaajj2
+ppaajjj
+pplla
+pplla2
+pplla_ew
+ppllaj
+ppllaj2
+ppllaj_ew
+ppllaj_nf5
+ppllajj
+ppllll
+ppllll2
+ppllll2_nf5
+ppllll2_onlyh
+ppllll_ew
+ppllllbb
+ppllllj
+ppllllj2
+ppllllj2_nf5
+ppllllj2_nf5_notridr
+ppllllj2_nf5_sr
+ppllllj2_onlyh
+ppllnnjj_ew
+ppllnnjj_vbs
+pplnaj_ckm
+pplnajj
+pplnajj_ckm
+ppvv
+ppvv2
+ppvv_ew
+ppvvj
+ppvvj2
+ppvvj_ew
+ppwajj
+ppwwjj
+ppzajj
+ppzwj_ew
+ppzwjj
+ppzzjj
+ppajj
+ppajj2
+ppajj_ew
+ppajjj
+ppllj
+ppllj2
+ppllj_ew
+ppllj_nf5
+pplljj
+pplljj_ew
+pplljjj
+pplnj_ckm
+pplnjj
+pplnjj_ckm
+pplnjj_ew
+pplnjjj
+ppnnjj_ew
+ppnnjjj
+ppvj
+ppvj2
+ppvj_ew
+ppwj_ckm
+ppwjj
+ppwjj_ckm
+ppwjj_ew
+ppwjjj
+ppzjj
+ppzjj_ew
+ppzjjj
+pphtt
+pphtt_ew
+pphttj
+pphlltt
+pphll
+pphll2
+pphll_ew
+pphllj
+pphllj2
+pphllj_ew
+pphlljj
+pphlljj_top
+pphlnj_ckm
+pphlnjj
+pphv
+pphv_ew
+pphwjj
+pphz2
+pphzj2
+pphzjj
+pphhtt
+pphhv
+pphhh2
+heftpphh
+heftpphhj
+heftpphhjj
+pphh2
+pphhj2
+pphhjj2
+pphhjj_vbf
+bbhj
+heftpphj
+heftpphjj
+heftpphjjj
+pphbb
+pphbbj
+pphj2
+pphjj2
+pphjj_vbf
+pphjj_vbf_ew
+pphjjj2 \ No newline at end of file