diff --git a/alice/gen-sim/alice-gen-sim.spec b/alice/gen-sim/alice-gen-sim.spec
index c4d4657a61bf890435e8efdd9fb576f5f8e9520d..f66ea0507f5e350b95c2deeb90d90812862e47d0 100644
--- a/alice/gen-sim/alice-gen-sim.spec
+++ b/alice/gen-sim/alice-gen-sim.spec
@@ -3,5 +3,5 @@ HEPWL_BMKOPTS="-c 4 -e 1" # -c replaces -n as of v0.10
 HEPWL_BMKDIR=alice-gen-sim
 HEPWL_BMKDESCRIPTION="ALICE pp GEN-SIM"
 HEPWL_DOCKERIMAGENAME=alice-gen-sim-bmk
-HEPWL_DOCKERIMAGETAG=v0.15 # versions >= v0.11 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v0.16 # versions >= v0.11 use common bmk driver
 HEPWL_CVMFSREPOS=alice.cern.ch
diff --git a/alice/gen-sim/alice-gen-sim/jobs/bad_1/alice-gen-sim_summary.json b/alice/gen-sim/alice-gen-sim/jobs/bad_1/alice-gen-sim_summary.json
index 1e66c884453482231e039171842652b5cfa51563..5979de687fc451ef4d1569c6cc52aa1bf1542b1d 100644
--- a/alice/gen-sim/alice-gen-sim/jobs/bad_1/alice-gen-sim_summary.json
+++ b/alice/gen-sim/alice-gen-sim/jobs/bad_1/alice-gen-sim_summary.json
@@ -1 +1 @@
-{"copies":2 , "threads_per_copy":1 , "events_per_thread" : 1 , "CPU_score": "" , "log": "[ERROR] There is at least one job not finished properly", "app": {"version":"v0.15","description":"ALICE pp GEN-SIM","cvmfs_checksum":"9986a9a83745b416a510788e1f35d807","bmkdata_checksum":"b94489e16c0a77f2a0a9aaf333260a96","bmk_checksum":"6c5c2fd1379388c9b1cbd3888e5ecbd3"} }
+{"copies":2 , "threads_per_copy":1 , "events_per_thread" : 1 , "wl-scores":{} , "log": "[ERROR] There is at least one job not finished properly", "app": {"version":"v0.15","description":"ALICE pp GEN-SIM","cvmfs_checksum":"9986a9a83745b416a510788e1f35d807","bmkdata_checksum":"b94489e16c0a77f2a0a9aaf333260a96","bmk_checksum":"6c5c2fd1379388c9b1cbd3888e5ecbd3"} }
diff --git a/alice/gen-sim/alice-gen-sim/jobs/good_1/alice-gen-sim_summary.json b/alice/gen-sim/alice-gen-sim/jobs/good_1/alice-gen-sim_summary.json
index 59d971fc522846978d8cd5970b09b4afeffa686d..2fe43f2cb34ceb599a28fc7e1989a1343d2776ac 100644
--- a/alice/gen-sim/alice-gen-sim/jobs/good_1/alice-gen-sim_summary.json
+++ b/alice/gen-sim/alice-gen-sim/jobs/good_1/alice-gen-sim_summary.json
@@ -1 +1 @@
-{"copies":4 , "threads_per_copy":1 , "events_per_thread" : 1 , "CPU_score": {"score": 0.0606, "avg": 0.0152, "median": 0.0152, "min": 0.0152, "max": 0.0152} , "log": "ok", "app": {"version":"v0.15","description":"ALICE pp GEN-SIM","cvmfs_checksum":"9986a9a83745b416a510788e1f35d807","bmkdata_checksum":"b94489e16c0a77f2a0a9aaf333260a96","bmk_checksum":"6c5c2fd1379388c9b1cbd3888e5ecbd3"} }
+{"copies":4 , "threads_per_copy":1 , "events_per_thread" : 1 , "wl-scores": {"gen-sim": 0.0606} , "wl-stats": {"score": 0.0606, "avg": 0.0152, "median": 0.0152, "min": 0.0152, "max": 0.0152} , "log": "ok", "app": {"version":"v0.15","description":"ALICE pp GEN-SIM","cvmfs_checksum":"9986a9a83745b416a510788e1f35d807","bmkdata_checksum":"b94489e16c0a77f2a0a9aaf333260a96","bmk_checksum":"6c5c2fd1379388c9b1cbd3888e5ecbd3"} }
diff --git a/alice/gen-sim/alice-gen-sim/parseResults.sh b/alice/gen-sim/alice-gen-sim/parseResults.sh
index c4c675f6275e5e08142f1b02b4a38439e89f3b54..df656f083dbf3d4f95117af6c948fa1188ccfdcc 100644
--- a/alice/gen-sim/alice-gen-sim/parseResults.sh
+++ b/alice/gen-sim/alice-gen-sim/parseResults.sh
@@ -1,7 +1,7 @@
 #!/bin/bash
 
 function generateSummary(){
-  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"CPU_score\": $resJSON , \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
+  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , $resJSON , \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
   cat ${APP}_summary.json
 }
 
@@ -21,7 +21,7 @@ function parseResults(){
   if [ "$1" == "" ] || [ "$2" != "" ]; then echo "[parseresults] ERROR! Invalid arguments '$@' to parseResults"; return 1; fi
   echo "[parseResults] parse results and generate summary (previous status: $1)"
   echo "[parseResults] current directory: $(pwd)"
-  export resJSON='""'
+  export resJSON='"wl-scores":{}'
   export s_msg="ok"
   #-----------------------
   # Parse results
@@ -36,15 +36,16 @@ function parseResults(){
         median=a[(n + 1) / 2];
       } else {
         median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;
-      }; printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-    }' || (echo "\"[ERROR] Something went wrong in parsing the CPU score\""; exit 1)`
+      }; 
+printf "\"wl-scores\": {\"gen-sim\": %.4f} , \"wl-stats\": {\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum, sum/count, median, amin, amax
+    }' || (echo "\"wl-scores\":{}"; exit 1)`
   STATUS=$?
   echo "[parseResults] checking that all job are completed correctly from" proc_*/out_*.log
   ALL_JOBS_SUCCEED=`grep -c -h -m1 "finished with the expected exit code" proc_*/out_*.log | awk 'BEGIN{sum=0;count=0}{sum+=$1;count+=1}END{print sum==count}'`
   if [ "$ALL_JOBS_SUCCEED" != 1 ]; then
     STATUS=1
     s_msg="[ERROR] There is at least one job not finished properly"
-    resJSON='""'
+    resJSON='"wl-scores":{}'
     grep -c "finished with the expected exit code" proc_*/out_*.log
   fi
   #-----------------------
diff --git a/atlas/gen/atlas-gen.spec b/atlas/gen/atlas-gen.spec
index 075693717f3275a04406e1250d1204b24daacfd1..6ff816eb320c1e25f225a8f56a5da28586ba13c0 100644
--- a/atlas/gen/atlas-gen.spec
+++ b/atlas/gen/atlas-gen.spec
@@ -1,8 +1,8 @@
 HEPWL_BMKEXE=atlas-gen-bmk.sh
-HEPWL_BMKOPTS="" # -c replaces -n as of v0.11
+HEPWL_BMKOPTS="-e 4 -t 2" # -c replaces -n as of v0.11
 HEPWL_BMKDIR=atlas-gen
 HEPWL_BMKDESCRIPTION="ATLAS Event Generation based on athena version 19.2.5.5"
 HEPWL_DOCKERIMAGENAME=atlas-gen-bmk
-HEPWL_DOCKERIMAGETAG=v0.15 # versions >= v0.11 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v1.0 # versions >= v0.11 use common bmk driver
 HEPWL_CVMFSREPOS=atlas.cern.ch,atlas-condb.cern.ch,sft.cern.ch
 HEPWL_EXTEND_SFT_SPEC=./sft_spec_custom.txt
diff --git a/atlas/gen/atlas-gen/DESCRIPTION b/atlas/gen/atlas-gen/DESCRIPTION
new file mode 100644
index 0000000000000000000000000000000000000000..d5df935f080f8dae51474db8c8cfe1cca7b1a903
--- /dev/null
+++ b/atlas/gen/atlas-gen/DESCRIPTION
@@ -0,0 +1,2 @@
+Generation of ttbar MC events. The application is single-threaded and requires no input data. 
+The score consists of throughput (events per second). 
diff --git a/atlas/gen/atlas-gen/atlas-gen-bmk.sh b/atlas/gen/atlas-gen/atlas-gen-bmk.sh
index 87c11edfb9ee7c0c07ac18f2c7dc7b40eb888dbc..677f3514ac1972e83e2c438ba35ae73eea0dece0 100755
--- a/atlas/gen/atlas-gen/atlas-gen-bmk.sh
+++ b/atlas/gen/atlas-gen/atlas-gen-bmk.sh
@@ -23,7 +23,7 @@ function doOne(){
   # Execute WL copy
   Generate_tf.py --ecmEnergy="13000"  --firstEvent="47060001" --jobConfig="$joboptions" \
     --maxEvents="$NEVENTS_THREAD" --outputEVNTFile="EVNT.10867034._003922.pool.root.1" --outputTXTFile="TXT.10867034._003922.tar.gz.1" \
-    --randomSeed="9413" --runNumber="410501" --skipEvents="17060000" > out_$1.log 2>&1
+    --randomSeed="9413" --runNumber="410501"  > out_$1.log 2>&1
   status=${?}
   echo "[doOne ($1)] $(date) completed (status=$status)"
   # Return 0 if this workload copy was successful, 1 otherwise
@@ -33,7 +33,7 @@ function doOne(){
 # Default values for NCOPIES, NTHREADS, NEVENTS_THREAD must be set in each benchmark
 NCOPIES=$(nproc)
 NTHREADS=1 # cannot be changed by user input (single-threaded single-process WL)
-NEVENTS_THREAD=5
+NEVENTS_THREAD=500
 
 # Source the common benchmark driver
 if [ -f $(dirname $0)/bmk-driver.sh ]; then
diff --git a/atlas/gen/atlas-gen/jobs/good_1/atlas-gen_summary.json b/atlas/gen/atlas-gen/jobs/good_1/atlas-gen_summary.json
index cccff46f6cb39b78924a50397d71219fe0d88e2e..718c35efe7d2863deff9c6c1e1e332aa1e88af8f 100644
--- a/atlas/gen/atlas-gen/jobs/good_1/atlas-gen_summary.json
+++ b/atlas/gen/atlas-gen/jobs/good_1/atlas-gen_summary.json
@@ -1 +1 @@
-{"copies":4 , "threads_per_copy": 1 , "events_per_thread" : 5 , "wl-scores": {"sim": 89.2575} , "wl-stats": {"score": 89.2575, "avg": 22.3144, "median": 22.3242, "min": 21.8818, "max": 22.7273} , "log": "ok", "app":{"version":"v0.15","description":"ATLAS Event Generation based on athena version 19.2.5.5","cvmfs_checksum":"512aae44a881c0d4f9bc690488653241","bmkdata_checksum":"9a62d4782b086a9c74ab6edd38dc0ee3","bmk_checksum":"e93678ff532a3233f94f3e3890a8f39c"} }
+{"copies":4 , "threads_per_copy": 1 , "events_per_thread" : 5 , "wl-scores": {"gen": 89.2575} , "wl-stats": {"score": 89.2575, "avg": 22.3144, "median": 22.3242, "min": 21.8818, "max": 22.7273} , "log": "ok", "app":{"version":"v0.15","description":"ATLAS Event Generation based on athena version 19.2.5.5","cvmfs_checksum":"512aae44a881c0d4f9bc690488653241","bmkdata_checksum":"9a62d4782b086a9c74ab6edd38dc0ee3","bmk_checksum":"e93678ff532a3233f94f3e3890a8f39c"} }
diff --git a/atlas/gen/atlas-gen/parseResults.sh b/atlas/gen/atlas-gen/parseResults.sh
index 8d093a7a590799e7301ebff1812f97e08f8b6e2c..a012298a92c0bfa47cbff93f9e59dc60a065ae24 100644
--- a/atlas/gen/atlas-gen/parseResults.sh
+++ b/atlas/gen/atlas-gen/parseResults.sh
@@ -46,7 +46,7 @@ function parseResults(){
       } else {
         median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;
       }; 
-printf "\"wl-scores\": {\"sim\": %.4f} , \"wl-stats\": {\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum, sum/count, median, amin, amax
+printf "\"wl-scores\": {\"gen\": %.4f} , \"wl-stats\": {\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum, sum/count, median, amin, amax
     }' || (echo "\"wl-scores\":{}"; exit 1)`
   shstatus=$?
   [ "$shstatus" != "0" ] && s_msg="ERROR"
diff --git a/atlas/sim/atlas-sim.spec b/atlas/sim/atlas-sim.spec
index 7ec72f34ed453e527458525447b1c74089595212..75e68ca9431968a4dedfc3e307b692b10a8fc7b7 100644
--- a/atlas/sim/atlas-sim.spec
+++ b/atlas/sim/atlas-sim.spec
@@ -3,5 +3,5 @@ HEPWL_BMKOPTS="-e 3 -t 2" # -c replaces -n as of v0.14
 HEPWL_BMKDIR=atlas-sim
 HEPWL_BMKDESCRIPTION="ATLAS Sim (GEANT4) based on athena version 21.0.15"
 HEPWL_DOCKERIMAGENAME=atlas-sim-bmk
-HEPWL_DOCKERIMAGETAG=v0.18 # versions >= v0.14 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v1.0 # versions >= v0.14 use common bmk driver
 HEPWL_CVMFSREPOS=atlas.cern.ch,atlas-condb.cern.ch,sft.cern.ch
diff --git a/atlas/sim/atlas-sim/DESCRIPTION b/atlas/sim/atlas-sim/DESCRIPTION
new file mode 100644
index 0000000000000000000000000000000000000000..8f40a6753c35be9a259d1d0f0762c6d8870420e6
--- /dev/null
+++ b/atlas/sim/atlas-sim/DESCRIPTION
@@ -0,0 +1,3 @@
+Simulation of MC events that have been generated by a generation workload. 
+The application is multi-threaded and reads an input data file containing 10'000 generated events. 
+The score consists of throughput (events per second).
\ No newline at end of file
diff --git a/cms/digi/cms-digi.spec b/cms/digi/cms-digi.spec
index 65034ed26b0564a0d352186add9d04004ed316b0..b3f2d0ffaf7cfdcdab2d3d841731ce41bca50b91 100644
--- a/cms/digi/cms-digi.spec
+++ b/cms/digi/cms-digi.spec
@@ -3,5 +3,5 @@ HEPWL_BMKOPTS="-t 4 -e 20" # -c replaces -n as of v0.11 (NB the input file has o
 HEPWL_BMKDIR=cms-digi
 HEPWL_BMKDESCRIPTION="CMS DIGI of ttbar events based on CMSSW_10_2_9"
 HEPWL_DOCKERIMAGENAME=cms-digi-bmk
-HEPWL_DOCKERIMAGETAG=v0.16 # versions >= v0.12 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v1.0 # versions >= v0.12 use common bmk driver
 HEPWL_CVMFSREPOS=cms.cern.ch
diff --git a/cms/digi/cms-digi/jobs/good_1/cms-digi_summary.json b/cms/digi/cms-digi/jobs/good_1/cms-digi_summary.json
index c5ea995adbff98413c7493aa5142374088da1126..d69a3b17b9734fb02858d5d22e26c46fe332775f 100644
--- a/cms/digi/cms-digi/jobs/good_1/cms-digi_summary.json
+++ b/cms/digi/cms-digi/jobs/good_1/cms-digi_summary.json
@@ -1 +1 @@
-{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 20 , "throughput_score": {"score": 0.5115, "avg": 0.5115, "median": 0.5115, "min": 0.5115, "max": 0.5115} , "CPU_score": {"score": 0.1630, "avg": 0.1630, "median": 0.1630, "min": 0.1630, "max": 0.1630} , "log": "ok", "app": {"version":"v0.15","description":"CMS DIGI of ttbar events based on CMSSW_10_2_9","cvmfs_checksum":"7bb1a8eb5227436a7625edeff6c1c89c","bmkdata_checksum":"b7dfab57bfbd132ebdd80335fe368e13","bmk_checksum":"b126af4c6938ccd96f583ea4492859df"} }
+{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 20 , "wl-scores": {"digi": 0.5115}, "wl-stats": {"throughput_score": {"score": 0.5115, "avg": 0.5115, "median": 0.5115, "min": 0.5115, "max": 0.5115} , "CPU_score": {"score": 0.1630, "avg": 0.1630, "median": 0.1630, "min": 0.1630, "max": 0.1630} }, "log": "ok", "app": {"version":"v0.15","description":"CMS DIGI of ttbar events based on CMSSW_10_2_9","cvmfs_checksum":"7bb1a8eb5227436a7625edeff6c1c89c","bmkdata_checksum":"b7dfab57bfbd132ebdd80335fe368e13","bmk_checksum":"b126af4c6938ccd96f583ea4492859df"} }
diff --git a/cms/digi/cms-digi/parseResults.sh b/cms/digi/cms-digi/parseResults.sh
index e6714283baabbed2f638bfbbbf5e9ee0b63f9ab5..5df6841cebe9b365a676163369c4e81e18d20236 100644
--- a/cms/digi/cms-digi/parseResults.sh
+++ b/cms/digi/cms-digi/parseResults.sh
@@ -1,5 +1,5 @@
 function generateSummary(){
-  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"throughput_score\": $res_thr , \"CPU_score\": $res_cpu , \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
+  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"wl-scores\": $res_score, \"wl-stats\": {\"throughput_score\": $res_thr , \"CPU_score\": $res_cpu }, \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
   cat ${APP}_summary.json
 }
 
@@ -21,6 +21,7 @@ function parseResults(){
   echo "[parseResults] current directory: $(pwd)"
   export res_cpu='""'
   export res_thr='""'
+  export res_score='""'
   export s_msg="ok"
   if [ "$1" -ne 0 ]; then
     echo "Previous steps failed: skip parsing, go to generateSummary"
@@ -35,12 +36,18 @@ function parseResults(){
     # Parsing  Event Throughput: xxxx ev/s
     res_thr=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the Event Throughput\""; return 1)`
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_1=$?
+
+    #Duplicating above parsing, as quick and dirty. SHoudl be replaced by a python parser
+    res_score=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
+printf "{\"digi\": %.4f}", sum
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
+
     # Parsing  CPU Summary: \n- Total loop:: xxxx seconds of all CPUs
     res_cpu=`grep -H -A2 "CPU Summary" proc_*/out_*.log | grep "Total loop" | sed -e "s@.*\sTotal loop: \([ 0-9\.]*\)@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=nevt*nthread/$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the CPU score\""; return 1)`
+}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_2=$?
     [[ "$STATUS_1" == "0" ]] && [[ "$STATUS_2" == "0" ]]
     STATUS=$?
diff --git a/cms/gen-sim/cms-gen-sim.spec b/cms/gen-sim/cms-gen-sim.spec
index 931976189ca118c1ba630e8ddf832e23c1e39a10..ea5767d3a7dcaae8f1b418f8735fafa8874fa0f6 100644
--- a/cms/gen-sim/cms-gen-sim.spec
+++ b/cms/gen-sim/cms-gen-sim.spec
@@ -3,6 +3,6 @@ HEPWL_BMKOPTS="-t 4 -e 2" # -c replaces -n as of v0.12
 HEPWL_BMKDIR=cms-gen-sim
 HEPWL_BMKDESCRIPTION="CMS GEN-SIM of ttbar events, based on CMSSW_10_2_9"
 HEPWL_DOCKERIMAGENAME=cms-gen-sim-bmk
-HEPWL_DOCKERIMAGETAG=v0.17 # versions >= v0.13 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v1.0 # versions >= v0.13 use common bmk driver
 HEPWL_CVMFSREPOS=cms.cern.ch
 HEPWL_EXTEND_CMS_SPEC=./cms_spec_custom.txt
diff --git a/cms/gen-sim/cms-gen-sim/jobs/good_1/cms-gen-sim_summary.json b/cms/gen-sim/cms-gen-sim/jobs/good_1/cms-gen-sim_summary.json
index 8ae5fbce53d57e482ba5a0940c73201bb8f5acbe..fbf3f56231c34795ee7b995305a0d38645eae002 100644
--- a/cms/gen-sim/cms-gen-sim/jobs/good_1/cms-gen-sim_summary.json
+++ b/cms/gen-sim/cms-gen-sim/jobs/good_1/cms-gen-sim_summary.json
@@ -1 +1 @@
-{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 2 , "throughput_score": {"score": 0.0666, "avg": 0.0666, "median": 0.0666, "min": 0.0666, "max": 0.0666} , "CPU_score": {"score": 0.0254, "avg": 0.0254, "median": 0.0254, "min": 0.0254, "max": 0.0254} , "log": "ok", "app": {"version":"v0.16","description":"CMS GEN-SIM of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"c8e29b993587c7e92411afb219787e65","bmkdata_checksum":"9035578520013c3a5faac30bc36e30e0","bmk_checksum":"a3299c240b48e19a7547d8a865fb7233"} }
+{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 2 , "wl-scores": {"gen-sim" :0.0666} , "wl-stats": {"throughput_score": {"score": 0.0666, "avg": 0.0666, "median": 0.0666, "min": 0.0666, "max": 0.0666} , "CPU_score": {"score": 0.0254, "avg": 0.0254, "median": 0.0254, "min": 0.0254, "max": 0.0254} }, "log": "ok", "app": {"version":"v0.16","description":"CMS GEN-SIM of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"c8e29b993587c7e92411afb219787e65","bmkdata_checksum":"9035578520013c3a5faac30bc36e30e0","bmk_checksum":"a3299c240b48e19a7547d8a865fb7233"} }
diff --git a/cms/gen-sim/cms-gen-sim/parseResults.sh b/cms/gen-sim/cms-gen-sim/parseResults.sh
index e6714283baabbed2f638bfbbbf5e9ee0b63f9ab5..915748df09ff905508ebd925e93d6a5be18d0396 100644
--- a/cms/gen-sim/cms-gen-sim/parseResults.sh
+++ b/cms/gen-sim/cms-gen-sim/parseResults.sh
@@ -1,5 +1,5 @@
 function generateSummary(){
-  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"throughput_score\": $res_thr , \"CPU_score\": $res_cpu , \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
+  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"wl-scores\": $res_score, \"wl-stats\": {\"throughput_score\": $res_thr , \"CPU_score\": $res_cpu }, \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
   cat ${APP}_summary.json
 }
 
@@ -21,6 +21,7 @@ function parseResults(){
   echo "[parseResults] current directory: $(pwd)"
   export res_cpu='""'
   export res_thr='""'
+  export res_score='""'
   export s_msg="ok"
   if [ "$1" -ne 0 ]; then
     echo "Previous steps failed: skip parsing, go to generateSummary"
@@ -35,12 +36,18 @@ function parseResults(){
     # Parsing  Event Throughput: xxxx ev/s
     res_thr=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the Event Throughput\""; return 1)`
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_1=$?
+
+    #Duplicating above parsing, as quick and dirty. SHoudl be replaced by a python parser
+    res_score=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
+printf "{\"gen-sim\" :%.4f} ", sum
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
+
     # Parsing  CPU Summary: \n- Total loop:: xxxx seconds of all CPUs
     res_cpu=`grep -H -A2 "CPU Summary" proc_*/out_*.log | grep "Total loop" | sed -e "s@.*\sTotal loop: \([ 0-9\.]*\)@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=nevt*nthread/$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the CPU score\""; return 1)`
+}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_2=$?
     [[ "$STATUS_1" == "0" ]] && [[ "$STATUS_2" == "0" ]]
     STATUS=$?
diff --git a/cms/reco/cms-reco.spec b/cms/reco/cms-reco.spec
index de7f5ebfc899cc7d429bf874409f57752f93b219..ac11facabde32ac1424b12ed9eaee21660f52815 100644
--- a/cms/reco/cms-reco.spec
+++ b/cms/reco/cms-reco.spec
@@ -3,5 +3,5 @@ HEPWL_BMKOPTS="-t 4 -e 3" # -c replaces -n as of v0.7
 HEPWL_BMKDIR=cms-reco
 HEPWL_BMKDESCRIPTION="CMS RECO of ttbar events, based on CMSSW_10_2_9"
 HEPWL_DOCKERIMAGENAME=cms-reco-bmk
-HEPWL_DOCKERIMAGETAG=v0.12 # versions >= v0.8 use common bmk driver
+HEPWL_DOCKERIMAGETAG=v1 # versions >= v0.8 use common bmk driver
 HEPWL_CVMFSREPOS=cms.cern.ch
diff --git a/cms/reco/cms-reco/jobs/bad_1/cms-reco_summary.json b/cms/reco/cms-reco/jobs/bad_1/cms-reco_summary.json
index af366b3d205e20c35ef75ec08a9437278f1e3f91..d2c5333a1d503715f7d0d51a0b23e478832abaa6 100644
--- a/cms/reco/cms-reco/jobs/bad_1/cms-reco_summary.json
+++ b/cms/reco/cms-reco/jobs/bad_1/cms-reco_summary.json
@@ -1 +1 @@
-{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 3 , "throughput_score": "[ERROR] Something went wrong in parsing the Event Throughput" , "CPU_score": "[ERROR] Something went wrong in parsing the CPU score" , "log": "ERROR", "app": {"version":"v0.11","description":"CMS RECO of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"7709cc1dd71cc16f1e82ed0bef0002a2","bmkdata_checksum":"85537134eef4c02127b3b638bd6f766d","bmk_checksum":"ff2071f17349425463b4e8e59e23f846"}  }
+{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 3 , "wl-scores": {"reco": 0.0000}, "wl-stats": {"throughput_score": {} , "CPU_score": {} }, "log": "ERROR", "app": {"version":"v0.11","description":"CMS RECO of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"7709cc1dd71cc16f1e82ed0bef0002a2","bmkdata_checksum":"85537134eef4c02127b3b638bd6f766d","bmk_checksum":"ff2071f17349425463b4e8e59e23f846"} }
diff --git a/cms/reco/cms-reco/jobs/good_1/cms-reco_summary.json b/cms/reco/cms-reco/jobs/good_1/cms-reco_summary.json
index e0ab752057e6460c00b5f3bfec7015a0f024cb33..c7da933eded35acc17e0a0fda82db23ced7348ea 100644
--- a/cms/reco/cms-reco/jobs/good_1/cms-reco_summary.json
+++ b/cms/reco/cms-reco/jobs/good_1/cms-reco_summary.json
@@ -1 +1 @@
-{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 3 , "throughput_score": {"score": 0.1574, "avg": 0.1574, "median": 0.1574, "min": 0.1574, "max": 0.1574} , "CPU_score": {"score": 0.0756, "avg": 0.0756, "median": 0.0756, "min": 0.0756, "max": 0.0756} , "log": "ok", "app": {"version":"v0.11","description":"CMS RECO of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"7709cc1dd71cc16f1e82ed0bef0002a2","bmkdata_checksum":"85537134eef4c02127b3b638bd6f766d","bmk_checksum":"ff2071f17349425463b4e8e59e23f846"} }
+{"copies":1 , "threads_per_copy":4 , "events_per_thread" : 3 , "wl-scores": {"reco": 0.1574}, "wl-stats": {"throughput_score": {"score": 0.1574, "avg": 0.1574, "median": 0.1574, "min": 0.1574, "max": 0.1574} , "CPU_score": {"score": 0.0756, "avg": 0.0756, "median": 0.0756, "min": 0.0756, "max": 0.0756} }, "log": "ok", "app": {"version":"v0.11","description":"CMS RECO of ttbar events, based on CMSSW_10_2_9","cvmfs_checksum":"7709cc1dd71cc16f1e82ed0bef0002a2","bmkdata_checksum":"85537134eef4c02127b3b638bd6f766d","bmk_checksum":"ff2071f17349425463b4e8e59e23f846"} }
diff --git a/cms/reco/cms-reco/parseResults.sh b/cms/reco/cms-reco/parseResults.sh
index e6714283baabbed2f638bfbbbf5e9ee0b63f9ab5..2af853aac8b43aa43590ca6075fdc86f15c17570 100644
--- a/cms/reco/cms-reco/parseResults.sh
+++ b/cms/reco/cms-reco/parseResults.sh
@@ -1,5 +1,5 @@
 function generateSummary(){
-  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"throughput_score\": $res_thr , \"CPU_score\": $res_cpu , \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
+  echo -e "{\"copies\":$NCOPIES , \"threads_per_copy\":$NTHREADS , \"events_per_thread\" : $NEVENTS_THREAD , \"wl-scores\": $res_score, \"wl-stats\": {\"throughput_score\": $res_thr , \"CPU_score\": $res_cpu }, \"log\": \"${s_msg}\", \"app\": `cat $BMKDIR/version.json` }" > ${APP}_summary.json
   cat ${APP}_summary.json
 }
 
@@ -21,6 +21,7 @@ function parseResults(){
   echo "[parseResults] current directory: $(pwd)"
   export res_cpu='""'
   export res_thr='""'
+  export res_score='""'
   export s_msg="ok"
   if [ "$1" -ne 0 ]; then
     echo "Previous steps failed: skip parsing, go to generateSummary"
@@ -35,12 +36,18 @@ function parseResults(){
     # Parsing  Event Throughput: xxxx ev/s
     res_thr=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the Event Throughput\""; return 1)`
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_1=$?
+
+    #Duplicating above parsing, as quick and dirty. SHoudl be replaced by a python parser
+    res_score=`grep -H "Event Throughput" proc_*/out_*.log | sed -e "s@[^:]*: Event Throughput: \([ 0-9\.]*\) ev/s@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
+printf "{\"reco\": %.4f}", sum
+}'  nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
+
     # Parsing  CPU Summary: \n- Total loop:: xxxx seconds of all CPUs
     res_cpu=`grep -H -A2 "CPU Summary" proc_*/out_*.log | grep "Total loop" | sed -e "s@.*\sTotal loop: \([ 0-9\.]*\)@\1@" | awk 'BEGIN{amin=1000000;amax=0;count=0;}  { val=nevt*nthread/$1; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} END{n = asort(a); if (n % 2) {median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1]) / 2.0;};
 printf "{\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum/count, median, amin, amax
-}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "\"[ERROR] Something went wrong in parsing the CPU score\""; return 1)`
+}' nevt=$NEVENTS_THREAD nthread=$NTHREADS || (echo "{}"; return 1)`
     STATUS_2=$?
     [[ "$STATUS_1" == "0" ]] && [[ "$STATUS_2" == "0" ]]
     STATUS=$?
diff --git a/lhcb/gen-sim/lhcb-gen-sim.spec b/lhcb/gen-sim/lhcb-gen-sim.spec
index 59c7953195e1e26ed3dc563c97aee804bb7b3368..d9fd652ef9999217fe91decbb3657609ac1935c3 100644
--- a/lhcb/gen-sim/lhcb-gen-sim.spec
+++ b/lhcb/gen-sim/lhcb-gen-sim.spec
@@ -3,5 +3,5 @@ HEPWL_BMKOPTS="-c 4 -e 5" # -c replaces -n as of v0.7
 HEPWL_BMKDIR=lhcb-gen-sim
 HEPWL_BMKDESCRIPTION="LHCb GEN-SIM benchmark"
 HEPWL_DOCKERIMAGENAME=lhcb-gen-sim-bmk
-HEPWL_DOCKERIMAGETAG=v0.12 # versions >= v0.6 use common bmk driver, >= v0.9 use separate GEN/SIM scores
+HEPWL_DOCKERIMAGETAG=v0.13 # versions >= v0.6 use common bmk driver, >= v0.9 use separate GEN/SIM scores
 HEPWL_CVMFSREPOS=lhcb.cern.ch
diff --git a/lhcb/gen-sim/lhcb-gen-sim/jobs/good_1/lhcb-gen-sim_summary_old.json b/lhcb/gen-sim/lhcb-gen-sim/jobs/good_1/lhcb-gen-sim_summary_old.json
index 7af0ce14e7e0ad7ce30b54e1b5500c1f5921c889..94b68fc7b0e84123e3b4b8da496ab4ae7e008017 100644
--- a/lhcb/gen-sim/lhcb-gen-sim/jobs/good_1/lhcb-gen-sim_summary_old.json
+++ b/lhcb/gen-sim/lhcb-gen-sim/jobs/good_1/lhcb-gen-sim_summary_old.json
@@ -1 +1 @@
-{"copies":4 , "threads_per_copy":1 , "events_per_thread" : 5 , "wl-scores": {"sim": 18.8494} , "wl-stats": {"score": 18.8494, "avg": 4.7124, "median": 4.7115, "min": 4.6994, "max": 4.7271} , "log": "ok", "app":{"version":"v0.12","description":"LHCb GEN-SIM benchmark","cvmfs_checksum":"dc9fea953411cf41c03f9086f355e5fc","bmkdata_checksum":"199a9d5cb218c303eafd74076bb7a3c0","bmk_checksum":"8b45d0b7de247fea287383312204f5d8"} }
+{"copies":4 , "threads_per_copy":1 , "events_per_thread" : 5 , "wl-scores": {"gen-sim": 18.8494} , "wl-stats": {"score": 18.8494, "avg": 4.7124, "median": 4.7115, "min": 4.6994, "max": 4.7271} , "log": "ok", "app":{"version":"v0.12","description":"LHCb GEN-SIM benchmark","cvmfs_checksum":"dc9fea953411cf41c03f9086f355e5fc","bmkdata_checksum":"199a9d5cb218c303eafd74076bb7a3c0","bmk_checksum":"8b45d0b7de247fea287383312204f5d8"} }
diff --git a/lhcb/gen-sim/lhcb-gen-sim/parseResults.sh b/lhcb/gen-sim/lhcb-gen-sim/parseResults.sh
index 12f328b4c30fd5ad0e84334060637b22ca2a1572..998fedd3022aef88bbd14a0ac4c24ec123090940 100644
--- a/lhcb/gen-sim/lhcb-gen-sim/parseResults.sh
+++ b/lhcb/gen-sim/lhcb-gen-sim/parseResults.sh
@@ -27,7 +27,7 @@ function parseResults(){
                    awk -F"|" 'BEGIN{amin=1000000;amax=0;count=0;}  \
                               { val=1000.*$5/$6; a[count]=val; count+=1; sum+=val; if(amax<val) amax=val; if(amin>val) amin=val} \
                              END{n = asort(a); if (n % 2) {   median=a[(n + 1) / 2]; } else {median=(a[(n / 2)] + a[(n / 2) + 1])/ 2.0;}; 
-printf "\"wl-scores\": {\"sim\": %.4f} , \"wl-stats\": {\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum, sum/count, median, amin, amax
+printf "\"wl-scores\": {\"gen-sim\": %.4f} , \"wl-stats\": {\"score\": %.4f, \"avg\": %.4f, \"median\": %.4f, \"min\": %.4f, \"max\": %.4f}", sum, sum, sum/count, median, amin, amax
 }' || (echo "\"wl-scores\":{}"; exit 1)`
   shstatus=$?
   [ "$shstatus" != "0" ] && s_msg="ERROR in bash parsing"