From adc2c7adcf5a4b51e5e66ae9ad0bd15fc86828c1 Mon Sep 17 00:00:00 2001
From: Klaus Rabbertz <klaus.rabbertz@cern.ch>
Date: Sat, 30 Sep 2023 21:25:32 +0200
Subject: [PATCH] Hack for ZJ RR producing RRa \& RRb warmups; new bootstrap

---
 ...ET_modules2_rev6591_bridge-1.0.0_202309.sh | 48 +++++++++++++++++++
 analysis/tasks/CopyRewarmup.py                |  4 ++
 analysis/tasks/CopyWarmup.py                  |  6 ++-
 3 files changed, 57 insertions(+), 1 deletion(-)
 create mode 100644 analysis/bootstrap_NNLOJET_modules2_rev6591_bridge-1.0.0_202309.sh

diff --git a/analysis/bootstrap_NNLOJET_modules2_rev6591_bridge-1.0.0_202309.sh b/analysis/bootstrap_NNLOJET_modules2_rev6591_bridge-1.0.0_202309.sh
new file mode 100644
index 0000000..66af9f7
--- /dev/null
+++ b/analysis/bootstrap_NNLOJET_modules2_rev6591_bridge-1.0.0_202309.sh
@@ -0,0 +1,48 @@
+#!/usr/bin/env bash
+
+# Bootstrap file for batch jobs that is sent with all jobs and
+# automatically called by the law remote job wrapper script to find the
+# setup.sh file of this example which sets up software and some environment
+# variables. The "{{analysis_path}}" variable is defined in the workflow
+# base tasks in analysis/framework.py.
+
+action() {
+
+    # law + luigi env variables
+    local base="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
+    export LAW_HOME="$base/.law"
+    export LAW_CONFIG_FILE="$base/law.cfg"
+    export LUIGI_CONFIG_PATH="$base/luigi.cfg"
+    export ANALYSIS_PATH="$base"
+    export ANALYSIS_DATA_PATH="$ANALYSIS_PATH/data"
+
+    # luigi + law
+    export PATH="$base/law/bin:$base/luigi/bin:$PATH"
+    export PYTHONPATH="$base/law:$base/luigi:$base/six:$base/python-dateutil-2.8.2:$base:$PYTHONPATH"
+
+    # lcg software stack with python3 and gcc11 (use the same one as for cvmfs install of NNLOJET & APPLfast)
+    source /cvmfs/sft.cern.ch/lcg/views/LCG_102/x86_64-centos7-gcc11-opt/setup.sh
+
+    # grid storage interface with gfal2, if required
+    # C7 with python3
+    source /cvmfs/grid.cern.ch/centos7-ui-200122/etc/profile.d/setup-c7-ui-python3-example.sh
+
+    # NNLOJET + APPLfast (cvmfs)
+    applfastpath="/cvmfs/etp.kit.edu/fastnnlo-3000_bridge-1.0.0_202309_lcg102-c7-gcc11"
+    #applfastpath="/eos/theory/project/applfast/local"
+    # LCG not needed here since source'd already above!
+    # NNLOJET & APPLfast
+    source $applfastpath/src/fnlosrc_source.sh
+    # Rivet
+    source $applfastpath/src/rivetenv.sh
+    # If fastNLO version of grid install in /cvmfs/etp.kit.edu not new enough for evaluation,
+    # then use local install for plotting etc, but keep scripts of NNLOJET in PATH
+    #export PATH="$applfastpath/src/NNLOJET_rev6591/driver/bin:$PATH"
+
+    #export PYTHONPATH="$PWD:$PYTHONPATH" ???
+
+    tar -xzf analysis*.tar.gz
+    rm analysis*.tar.gz
+
+}
+action
diff --git a/analysis/tasks/CopyRewarmup.py b/analysis/tasks/CopyRewarmup.py
index 36af88b..ba2f3e5 100644
--- a/analysis/tasks/CopyRewarmup.py
+++ b/analysis/tasks/CopyRewarmup.py
@@ -52,6 +52,10 @@ class CopyRewarmup(Task, TarballExtractionMixin, law.LocalWorkflow):
 
     def output(self):
         out_dir = os.getenv("ANALYSIS_PATH") or os.getcwd()
+        # KR TODO: Dirty hack to deal with double targets RRa, RRb for RR channel
+        file_ext = self.branch_data['channel']
+        if file_ext == "RR":
+            file_ext = "RRa"
         return law.LocalFileTarget(
             '{}/{}/{}/{}/{}.{}-{}.{}.{}'.format(
                 out_dir,
diff --git a/analysis/tasks/CopyWarmup.py b/analysis/tasks/CopyWarmup.py
index 407133e..6acf515 100644
--- a/analysis/tasks/CopyWarmup.py
+++ b/analysis/tasks/CopyWarmup.py
@@ -52,12 +52,16 @@ class CopyWarmup(Task, TarballExtractionMixin, law.LocalWorkflow):
 
     def output(self):
         out_dir = os.getenv("ANALYSIS_PATH") or os.getcwd()
+        # KR TODO: Dirty hack to deal with double targets RRa, RRb for RR channel
+        file_ext = self.branch_data['channel']
+        if file_ext == "RR":
+            file_ext = "RRa"
         return law.LocalFileTarget(
             '{}/{}/{}/{}/{}.{}-{}.{}.{}'.format(
                 out_dir,
                 self.warm_dir, 'warmup', self.name,
                 self.process, self.branch_data['channel'],
-                self.jobnameext, self.cutoff, self.branch_data['channel'],
+                self.jobnameext, self.cutoff, file_ext,
             )
         )
 
-- 
GitLab