From 289740529d4ac6b12634f899177ffa0b3f5428b6 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 30 May 2023 14:52:13 +0200
Subject: [PATCH 001/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 08e21f2..04b528c 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,7 +90,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.1" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "c874e0fd" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "743ee746" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From cd0cbf7b183e71c18ebe18d4cdd85a3d01da5151 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 30 May 2023 18:30:44 +0200
Subject: [PATCH 002/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 04b528c..caadde3 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,7 +90,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.1" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "743ee746" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "19ecae87" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 17873365527eb81d283316c18f39622f094af818 Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Thu, 1 Jun 2023 16:54:08 +0200
Subject: [PATCH 003/106] bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index f28f475..9407ce5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.2.1 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.2.2 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 72d19cbbf3ea640cfe277908922dee57e39b0a45 Mon Sep 17 00:00:00 2001
From: Alexander Held <alexander.held@cern.ch>
Date: Thu, 1 Jun 2023 12:45:22 +0200
Subject: [PATCH 004/106] feat: update pyhf to version 0.7.2

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 1e88483..1809a19 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,7 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.1
+pyhf==0.7.2
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index caadde3..eb083aa 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -88,7 +88,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
-set( STATANA_PYHF_VERSION "0.7.1" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "19ecae87" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
-- 
GitLab


From b0f3a782fafbca86d864bee84457e99f160004a1 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 1 Jun 2023 18:32:06 +0200
Subject: [PATCH 005/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index eb083aa..36fc441 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,7 +90,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "19ecae87" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "73b9f1cd" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 86d4d5aaa3d95d630dd252fa708cbe934a30297c Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 1 Jun 2023 18:34:29 +0200
Subject: [PATCH 006/106] backport improvement to CI from master

---
 .gitlab-ci.yml | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 3be474b..e5d174a 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -7,6 +7,14 @@
 #  - A Docker image can be created with the help of the RPM file, and uploaded
 #    into gitlab-registry.cern.ch.
 
+# this snippet prevents pipelines starting for branches that have an MR open, so as to avoid duplications
+workflow:
+  rules:
+    - if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
+    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
+      when: never
+    - if: '$CI_COMMIT_BRANCH'
+
 # "Global" build stages.
 stages:
   - build
@@ -101,7 +109,7 @@ docker:
     - docker-image-build
   script: echo
   rules:
-    - if: ($CI_PIPELINE_SOURCE == "merge_request_event" || ($CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"))
+    - if: (($CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"))
       when: never
     - if: $CI_PROJECT_NAMESPACE == "atlas"
       variables:
@@ -126,6 +134,7 @@ test:
     - make
     - ctest --output-on-failure --output-junit ./../testRes.xml # Actually execute tests embedded in testproject
     - ls ./../
+  allow_failure: true # IMPORTANT: Should remove this line once tests are fixed (can handle missing components)
   artifacts:
     when: always
     reports:
-- 
GitLab


From 1b6e08ace3199f803a6089226db13d87eeb1a7d1 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 1 Jun 2023 20:00:28 +0200
Subject: [PATCH 007/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 36fc441..247ed64 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,7 +90,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "73b9f1cd" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "9958ab8e" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From c509702a60d740e2ef8a4f4c89af2802a74583d3 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 5 Jun 2023 19:04:58 +0200
Subject: [PATCH 008/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 247ed64..808c7ea 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,7 +90,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "9958ab8e" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "d7fe4639" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From a7a0df2c10b525c0c5ef441a5388dd7d8e3c2b4b Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Thu, 8 Jun 2023 14:53:57 +0200
Subject: [PATCH 009/106] Update TRExFitter, xRooFit and CommonStatTools

---
 ProjectOptions/CMakeLists.txt | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 808c7ea..7f638e0 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -90,11 +90,11 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "d7fe4639" CACHE STRING "Version of xRooFit"  )
-set( STATANA_COMMONSTATTOOLS_VERSION "2de12f83" CACHE STRING "Version of CommonStatTools" )
+set( STATANA_XROOFIT_VERSION "9e156707" CACHE STRING "Version of xRooFit"  )
+set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-21" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "a0166764" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From 5bae97d242767bf223ef53f34c2089c8b98a4dfd Mon Sep 17 00:00:00 2001
From: Alexander Held <alexander.held@cern.ch>
Date: Thu, 8 Jun 2023 17:39:18 +0200
Subject: [PATCH 010/106] feat: add cabinetry to StatAnalysis

---
 Externals/PyExternals/requirements.txt        |   1 +
 ProjectOptions/CMakeLists.txt                 |   1 +
 .../tests/cabinetry/config_histograms.yml     |  51 ++++++++++++++++++
 TestProject/tests/cabinetry/histograms.root   | Bin 0 -> 15705 bytes
 TestProject/tests/cabinetry/test-cabinetry.py |  31 +++++++++++
 TestProject/tests/cabinetry/test-cabinetry.sh |   1 +
 cmake/scripts/motd.in                         |   1 +
 7 files changed, 86 insertions(+)
 create mode 100644 TestProject/tests/cabinetry/config_histograms.yml
 create mode 100644 TestProject/tests/cabinetry/histograms.root
 create mode 100644 TestProject/tests/cabinetry/test-cabinetry.py
 create mode 100644 TestProject/tests/cabinetry/test-cabinetry.sh

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 1809a19..6dd0f10 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -10,3 +10,4 @@ gnureadline==8.1.2
 metakernel==0.29.0
 iminuit==2.17.0
 pytest==7.1.3
+cabinetry[contrib]==0.5.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 7f638e0..4804c4e 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -89,6 +89,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "9e156707" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
diff --git a/TestProject/tests/cabinetry/config_histograms.yml b/TestProject/tests/cabinetry/config_histograms.yml
new file mode 100644
index 0000000..5975131
--- /dev/null
+++ b/TestProject/tests/cabinetry/config_histograms.yml
@@ -0,0 +1,51 @@
+General:
+  Measurement: "minimal_example"
+  POI: "Signal_norm"
+  HistogramFolder: "histograms/"
+  InputPath: "tests/cabinetry/histograms.root:{RegionPath}/{SamplePath}/{VariationPath}"
+  VariationPath: "Nominal"
+
+Regions:
+  - Name: "Signal_region"
+    RegionPath: "SR"
+
+Samples:
+  - Name: "Data"
+    SamplePath: "Data"
+    Data: True
+
+  - Name: "Signal"
+    SamplePath: "Signal"
+
+  - Name: "Background"
+    SamplePath: "Background"
+
+Systematics:
+  - Name: "Luminosity"
+    Up:
+      Normalization: 0.05
+    Down:
+      Normalization: -0.05
+    Type: "Normalization"
+
+  - Name: "Modeling"
+    Up:
+      VariationPath: "Modeling_Up"
+    Down:
+      Symmetrize: True
+    Samples: "Background"
+    Type: "NormPlusShape"
+
+  - Name: "WeightBasedModeling"
+    Up:
+      VariationPath: "WeightBasedModeling_Up"
+    Down:
+      VariationPath: "WeightBasedModeling_Down"
+    Samples: "Background"
+    Type: "NormPlusShape"
+
+NormFactors:
+  - Name: "Signal_norm"
+    Samples: "Signal"
+    Nominal: 1
+    Bounds: [0, 10]
diff --git a/TestProject/tests/cabinetry/histograms.root b/TestProject/tests/cabinetry/histograms.root
new file mode 100644
index 0000000000000000000000000000000000000000..3e91814426ee73246d284e4fe7706d4a5feaec50
GIT binary patch
literal 15705
zcmd^G349bq)~}gKCLsxdKoSE4X)s&~kONeb0GS+QK_f&mK)BPH=}uZE)5#nJP>v7~
z50pdH0BTVD$;yYjfCnh3!yzDtuCOZTha4V!uCAzfe0Y$3uX?)EJ(-D<==%HZTF^b6
z?yCO3davqTRqYT(7a^BDgb*tsBd5R-3)iFJ(8G}z0w<1;h|dT~t{}RD9k<LU6)|7D
zylYhdT_5)E4NrqA3kkmHmYOApD@Z!g!8M=}5^63KY+R>G!RZn!9Bh?yhy&?qaf5_n
zOWK;~(xG9V{04YOA0%t*;a12JDf$T7ekeu1K!~v<!dxIYIEzbk%rlk<6?WF<{n5bX
z1JqDBXcIzow<6s4BLc(e@)1tgxfu@Hv<e5c;r}dbrr$uD4Zu74wFnzx9+O@WHcqS(
zfIztMM<~JZVro(N5FOc|Cv$bqva<DWcs}=dVvl;xdpyh$Pxw-k=a|Q{_lt)cH>`WO
zVLw@WuB@#59{pJTX<Jm0DKxci&=4ka0Dsm)^tR}zsFH5G7C)J`COv9v+}&~OUSsmj
z38e`M2~Bl<pWk}TtcyE7UisE@SLXk@mzCVraqU~>Wo2bGheOtw&i&0riVPhl?JA8a
zIQDp#J|7ofB0Tf-vN6nRQ{0QCiIc`|+3(3UWW0OTu;$a!hUim+w?46MnJ0YS`Ey^H
z_FVVL3#rBh`RlU}UA^mh%MV|VU-?((>7ES<hB+B43Y|GUx;O4!IQG;tKkfM8^mi-W
zSKpgilWA-E|F>?)c_IJgxql=kB!qM;ty>)ya_q~rB{vUUd?GUK?Txx08@JCc-QVqO
zcEg(^H)jnzzqo$%_zmy8ws|*ugxGso*gwJm`c3-?8V4sdp)-?eFVH!l!2)P6c!UbB
zLZx(4@Q$$r8>y6zzGMRYhnxR(CFs7Z^?Ek2Aw^~r{Jw;WcF&WoDB5h5qLo<u61>AN
ziw*E#wn`$YD3P#lee`lj0qbJv397f*Y7kPZLdZsh>p{F4Llcq5T4q-`M7Q0lx&*Y}
zxwMHFYANLap{X+K2njDkDeWt0MM^m;DN(jV8!b~bYzMCCim-{=6n1Dt$Umeh42l<E
z3VZzLn!@5M<nvh9d#hg@qf0t}s#nhUWYws&bmM_#C(ELjl+~yAe4?qTDd+4Hy~Z6f
za3{vcW`+E{sp-|3_Mt^R2iz9g!UUS?3<u^Ihj+|~4^Py0_Y7M>$cZ@<LA8Jf3*#!e
zKUL%=oS*2|q9QK>4>YR8<>1&V&N0@`i(Lvtce!mIV-xJNIV=1)T_%!z9SOx&FgEc7
zB^uuH5fIm8RyQVa_YKm)L`XNNP8%5D9BIxMZ8mT?1<_6>e|Yo}c!2?`ZlW(3Uw&Jz
z!@<tO#;b`zi-YP59uT(%E01+@cy|`QhD;<OaP9{UB}4*K#td%-z!<10SeOap$D0|E
z-hqdCaA?Y^9-hJK8zFhQB^U_kOoYtS07GX5dj&$XL=Wd_6ndZ<I+Py=yo|TQi4l3m
zRmm}y=H3&MO9)ATBVY+bmI8{2kR=*$+86V@YTES*qK67B#Yfj(>3S$%BFyI)ySu8K
zb07trjjQ79E+-?{wUi)lVORt%2Ep#azJ9AA14jwoJxc|hs9*yH(dH7aMkVW?Y}p6#
z^-y~|eTPccq|sN_v<p!6P7Rza>uO?vXFTojjS48dTs^w3Z3bu9a;M9|T3k#yj26aX
zW1UW@-J*EMqjFysz5%KJTtkZ7^LJ>^yDCHg;nGYZ!fX3?!<#~(>A$bTK3whrJa=<;
z3&)n*)MJgw&C6GMrMi%XBHxlbOvUtp-wq$99ll20;ST08tg{l;2RXKI>|T7CiI7Ix
zTrK7M0!i7WL6W6BlS<i4rQBD+gO^JT_M@E;*|&Jbpxl<b7z#9oey;)c$~5#m?P9zF
z2{H{g=ek_Ea|I`vE;fyVmw}oIebKjvp__es7>T$hLLSfnX=d+SqK66&+RXw5lfYo+
z$619rf)g~QGi97Ihn0H+($k<M+lMkK3|uDLGvLCWJ`kD)HJt%<QDCyHL=P2aQnH4q
z$%^2S4=}kzM?5{tstwEp$FRsF$u{WWH(&{MR*DWVCq7D5!<m^x4;4x&378B3IY?cL
z<crvH&PLHYDKyydUfaOu2JZh1qBjvTnS%FMgGWf<g`(Zn2~P|!I+%7~-yRsdjABov
z*vV?_C<%K!&pSC+XXyvoufT_rU(n;ByiH`0@3n#9r&IVz6uzGt-rIFFD$&%kv=4e=
zU}y`4o<X4ptDz%#vtXHB#Mvucm9f$f9d~e(sbU?oQSQNaeo<fw0*?DApulD0B&NqU
z^BzY$<HAR6BB4FvkB~?})_0Nl-%j`ifjLl4WiXw}V34m2pqq5UbycRFh5(%N!Oi<S
z0u!M2r!b^d=DoN7IP1D9Q?EVvppwJ7Y6$S^e&f&n?0GIKwW(w6)zG^L6EU8mO;x7N
zc+gkzcZ8~dLhjR`$fm897~okIW$`F=4~=H@7_G@>a23nJUv*OL!ZPSWTD@*7GXVb@
zB#k-L_AN~N*_}6yfcr|3ZJy3VNE>afV)!~C6ByP7{%E<|#rgH0ytc6gF8bs(zKjqo
zvi~}X=%GR}<pw0Oo8@if$CV3qXLPgi!#_#z_HBM(&{-683I){|mr%YG(#&x-v6kVi
z71VL(1&0%SN5Kxz;obv&{1>AYqbANoNRU(9CuAtCV&}%YtE<6dm+`@0{nhX=S|JF^
zwPS2W)CNY=c_UwnERM~C00GfK;uw!%yif|=MbGCK0u~y-6#zz%2F3@z5Lq3oFr0CT
zj8$+}+aM+kUhFL*#OAR!mFR&s$*I)XwoovwPFGi%)$Idb8hE@36xc$?o5rRa`8>hp
z%!qe#7SV2nQRZTtF4pCCGPR<^N(hO9qg9<6?Y28%=>`;p>{M+COvhqM$9zi1&Faa9
z_N|I5keHn=+EYcImw68%D5x8VV&||nHw+3GA})>vg~VfU$vFfI&dM%uP+bkbeoIKX
zDB4VftkRIz97wBOVaNb9D+09sRa~LysA66HAwS9Wqtt-s1vdsU+}tcCEi*MeBQ-OV
zNzcd{IxH(K4JgQk;}?dj5?^Z#qBL8IMTmMi2hJF^FM6Gtv@ppfb4FwQqw&R{71b8-
z<G(~GaZ|F1ka`VMS`eW2OEjKQIDd<11%KFijZ8t6Xcc$?Gd8kE46kpU6eG?4BtuVi
z?`Y`o+C`m*+QkH==OE_@jEQam-wQZ2u;;y>1BM>jKSbNBjH7O;uW`ii1eqG7iqOo{
zC|-i3{zsH_jkyfb0q?|Vf=9rjgdM*Iy2Lfl#>vo5`~&cUhYnIZB`Lgyw?}$=jb2}*
zx6@9zhDSkqy})nX48NlNQ-E+6mZfc^>2&fM>>af3)k3fxeFaN-Zz809aTNkmv39~M
zusj^w4#~D3o61#%-A2(OhmZK>@N)q;Tm%s_SsONbte3+pT5x#2FNfu+<J16Y!sb$x
z7Mak}or3TU04awf@TwimZ9gn!t_0ggzCvf(4?9_~x+*2uTD&Ad&r}d6v1+(1=lsS|
zamFe06Lg`Rs3k<_>V_E5xWBJ7Nt~}Vp(Yd<H`)%$N_U1oAjvWiZ=xDpdfg4aK)NJf
zAbDag*K|lTY-~htl9Q^qL`5w*4z~{cM7scK#jynmB6T7eH~pIttdL7aOM|Kx1D;kh
z$We-y0!9^(76&GUBYLO+dqLo=@ef0(uM~$q62RKP;n8?Xok&|~K)xT=5Fzt@2jzRL
z!USN2H!vgK&<fe!hS}Oe<^Ntw7TRd9+0#;|cr=DaTC#}o3R)xKT;Oi7-c+@Qug$n>
z-NY#Tg%=y8)JBvSSk9*ejS0ex9;5;F3Nt#M3NuCl17R9qI}u5|(R2WS!%d{)W!exX
zmc01X@x1Q@>JC)_<G&-GN9Es%T7cH$d9P{0uG1pt5%eZMd0RT9EyMuNq^MdG<<L9=
zn)TRb+ul03*Ylvjcv6G6u<;bUoPtaFVogx3@>FBI&Qt5yUU$|n_Dant)2L7v(VGad
zQ@sTW0{%fk6&l8mvv4+>Go^Vc4#VsL=>-D^G4u&DAfsR)lQJ=N{2a~!IojH`q&c+K
z1I95#`Z!pp5j~uxHBrq93WWKXHj62x`Fh66IV}#M8a4qE*!u{_DL4X_P&1~2Oukk*
zDA*|!cFOM!JC(vt{Z+8{2bQ~&=z$$lI&Y*}?h$+*>yT2#ed%&dG6dC-x*tf>dgZKx
zu~f1SSdYae1g=6vq3gW|{P-_Q3?msJP_A^vUNaJFh~7ju`@k7D;V2`q15!ktq9lnR
z>J|Mq^k~<|HT0;%XU%F#I6vABDMij1)12f3uLAFoHYMBIlj;Mb<8)Wm#+pSJYhy~>
zRT#h5azaI=tBvR_)~TB_PP2&~guqdyFib6qFbO@Qmj>Qh<A%ToMnpR)2{Ny)QO;gU
z=Ei9#kr<I&+BP{X3Or3(Nnubq%+0vQF9B^OA;_%~X=-6W76o)fmAk6D_g6}F(Ro^J
z6J0Lc>(QnG*-k11yF`Wb`>UyFk2qlA84_!SuwO!S#Ns7u6XvtHV~64C&9*V(F3pIL
z%!D@&T}AXJx=R$!*K5U*4~sma+tG`<WU6c|1g-P|=*v0Ma&KFb(su`@#ZGCdr1SI!
zH7!OSG(&AhABhr}m!LCnditHIZ6RikhL~n2S*<KJxvwyOd^L(8M)_EP5$O%oR=IEl
z>z+TNL6$_KN_H-wtbmQ2CPE6;tcc(X-FCWn%Q<B5C~pfC4(<&@p78QxW&jUaZH9%6
zw%f@$aG45sP2%cFz~W6pn*1zMHLKGpL=P28C~X>_CX&x{^E~Ik6j_w_n(^kyjN}&r
zL)_j3uU)6%3$<V>w%ktiP)FKlrHPQkyl~y8sc4wNpdFjXlvAn*A()YFwf|w#%26`b
zQ}+hL6#!n}k~nz<Z4uE!g?W@I8V4jA0%m&&1j(Zv4j4PVrQsrZAF!r_;WJ21uz>mF
z91hWe0|_10RwMZspeHM9G`tz!D&l(q{I7wjTTAp%;eJY8v3fW~^GKTF@eac^FHuS{
z@HQ5f97G&EkZ!PYj#N>0jBznaAv`F8yGjIWz`#G&P1evXNB_ArVC<q03ceHFbW5&m
zp9EWQi2+*nq%C3M$PuG1(l=s6KMtMn7LEyxRjl|LB5m=|tZ}2TyQdE>5UQBwSzg}i
zwl!}gi+HrikrITqZC&mSGt&+gbXJs|G$xVFElN%1rD5uuGA=L-a{F`)N#7f_X&bnD
zqxH@3BG?iy?I4HW*I}b|bmvw+bJE?6u-@;EB-qz|Hd?E;oU1MY2pdA|1|GQT`=cA-
zOR(!F_-?w^xoN#dx``I|NRZ)6lzNe{9>dwdUzjx!Hw@_Rqjk5?y0}}BWPY#Ijh{@t
zP0%!))u-7i+H5OrmWj=>mnzK?{52~OYjJ`4w<^K$0ybTb{14uAz4y@>JAatpKkJ`|
zORw9x@nYpVORZISZ~v;2uzm*@KN_{^t^a+~_+fU#Gc$WkJr;MdtnVXN&VTpfi_v%P
zzIgoeHzwB<AD#7N;+K~@2HJz2zv7jh8*aK~W&V;cAK1Bj-J;=3x1V`#ddi|V_ujtn
z<ug|<oKAC-YnD|;!zc-QL;=T5I?^bA@pT-(_*#3Ie)09X^2OIbH#DwU|G>J3ukAI}
zL)Lyozxo<TcAQRVSbWb+{gmmZ_~K)))agP_!S_>7WmN0NvPqi~N>jR|WZav3=bzKI
z!N$U?hMRAjlKRRU+|gc}gv;L+=Nu-Tdkon0n#be0u&P5+o#*jSNrSP=*6Qtj?rO;I
zTX5v@4|K;&6Czie`qU*mwh!OB#=N|)KFs=;pTm+)ZcppEZCdH*p^<elU+;VT6o2%K
zw1blqzFG9p*PR~7x-@*w@y8O5ZdvfL=Rm@?2iRfje>`1wN7&ng_dWRbhWf-P_kv9)
zKHfPzVcwfRpV)KeXzr^!8lJ6L)F}|t>))Mr`jyk!?`AK}iaQhi)kSys`)Pao-nV;S
z?_DQXA8%TcTGW$lzP}=+ol_I|e~XT6@$!G_LCXLA$p4M|Wd8S#e{B7_$8No_w)Bzp
z7u2FKAKL3V5F0un()w(An(pmaLw4+1JZNLX0)ruZTV`5X5qD0%X5W~nGPX@hnq-Zy
zkGhpDW6R2Z3VZ19J7(VT=+TFA3QvCW+2adW>6jae3-7I~t9z|?*D?CK{FA!0j!C8G
z%SU%kUw+eFYx7?=G}JvA->0rXKk=jTn$o^cM;n&M9-jVVr!h}i*sQXh+wS4x_1As0
zEdR`r{KAP_-v68Mr|)VPOuOO11H;EHtk_fh%&t#0ve+N{^fM!J-pw3-=7&|=FFjjV
zfAs8{2k)^rCO)!x$Mo%kPeqr6-7_`UIH~L-oo?ue73WSwZTv=Gbbax;&Tno1AnE;@
zm-2U9KI-1x?{a3+h|gX)d*R#Ty}!0zz5mM4!Das-dC}ERf-u^r@IV~nbY!b6j=fYI
zhp0FXD&mOoBaTaJW<7R@m|vF!(vb?py~n>mKKZu@B+j2e_C9#>JN?K$3E!;Ta`zYO
zuL$=a-?H`YXB#gjHh&Sh;?hQb)c*+CIh*VGOPB9G8<m+D+jYpLS-Y;TtN*{o{N3?C
zpR0e`F!~wBkdpTG;>F#rEvy!d#q)Jfbstb2{=xIyrnyJ*mT&8~-1yYG?8Kk`(l;zI
zXU~DXnJW%GZ>ht{@yeR2ufU3oMgv4*sR5#2{L!zX1Ag%b7RqoLmZN*4tr|I{_WHHt
EU(c&6QUCw|

literal 0
HcmV?d00001

diff --git a/TestProject/tests/cabinetry/test-cabinetry.py b/TestProject/tests/cabinetry/test-cabinetry.py
new file mode 100644
index 0000000..140ac06
--- /dev/null
+++ b/TestProject/tests/cabinetry/test-cabinetry.py
@@ -0,0 +1,31 @@
+import cabinetry
+import numpy as np
+
+
+def test_cabinetry():
+    cabinetry_config = cabinetry.configuration.load("tests/cabinetry/config_histograms.yml")
+    cabinetry.templates.collect(cabinetry_config, method="uproot")
+    cabinetry.templates.postprocess(cabinetry_config)
+    ws = cabinetry.workspace.build(cabinetry_config)
+    model, data = cabinetry.model_utils.model_and_data(ws)
+    fit_results = cabinetry.fit.fit(
+        model, data, minos="Signal_norm", goodness_of_fit=True
+    )
+
+    bestfit_expected = [
+        -0.32457145,
+        -0.58582788,
+        1.68953317,
+        -0.0880332,
+        1.00102289,
+        0.98910429,
+        1.01970061,
+        0.98296235,
+    ]
+    best_twice_nll_expected = 17.194205
+    assert np.allclose(fit_results.bestfit, bestfit_expected)
+    assert np.allclose(fit_results.best_twice_nll, best_twice_nll_expected)
+
+
+if __name__ == "__main__":
+    test_cabinetry()
diff --git a/TestProject/tests/cabinetry/test-cabinetry.sh b/TestProject/tests/cabinetry/test-cabinetry.sh
new file mode 100644
index 0000000..b3a7106
--- /dev/null
+++ b/TestProject/tests/cabinetry/test-cabinetry.sh
@@ -0,0 +1 @@
+python tests/cabinetry/test-cabinetry.py
diff --git a/cmake/scripts/motd.in b/cmake/scripts/motd.in
index 2676dc5..61c9a03 100644
--- a/cmake/scripts/motd.in
+++ b/cmake/scripts/motd.in
@@ -14,3 +14,4 @@ HistFitter          : @STATANA_HISTFITTER_VERSION@ ${STATANA_HISTFITTER_DATE}
 BootstrapGenerator  : @STATANA_BOOTSTRAPGENERATOR_VERSION@ ${STATANA_BOOTSTRAPGENERATOR_DATE}
 Significance        : @STATANA_SIGNIFICANCE_VERSION@ ${STATANA_SIGNIFICANCE_DATE}
 pyhf                : @STATANA_PYHF_VERSION@
+cabinetry           : @STATANA_CABINETRY_VERSION@
-- 
GitLab


From d2952cdd765c2f8e8f5f8b5b46319890a34c7ef7 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 12 Jun 2023 20:46:01 +0200
Subject: [PATCH 011/106] Update release_setup.sh to be an entrypoint script

---
 Dockerfile              | 3 ++-
 docker/release_setup.sh | 6 ++++++
 2 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 6a25403..88b08f4 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -40,4 +40,5 @@ WORKDIR /workdir
 
 # Start the image with BASH by default, after having printed the message
 # of the day and the currently included versions.
-CMD cat /etc/motd && /bin/bash --rcfile <(echo 'source /release_setup.sh')
+ENTRYPOINT ["/release_setup.sh"]
+CMD ["/bin/bash"]
diff --git a/docker/release_setup.sh b/docker/release_setup.sh
index d80b98a..e61d750 100644
--- a/docker/release_setup.sh
+++ b/docker/release_setup.sh
@@ -1,8 +1,11 @@
+#!/bin/bash
 # Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
 #
 # Environment configuration file setting up the installed project.
 #
 
+# used as an entrypoint script
+
 # Set up the compiler for the environment.
 source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh
 
@@ -12,3 +15,6 @@ echo "Configured StatAnalysis from: ${StatAnalysis_DIR}"
 
 # Set up the prompt:
 export PS1='\[\033[01;35m\][bash]\[\033[01;31m\][\u StatAnalysis-$StatAnalysis_VERSION]\[\033[01;34m\]:\W >\[\033[00m\] ';
+
+# execute whatever cmds required
+exec "$@"
-- 
GitLab


From db2be500070aceeba88d1ce36e16866094127868 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 12 Jun 2023 20:47:00 +0200
Subject: [PATCH 012/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 4804c4e..7812a70 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "9e156707" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "031bd18a" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From aeac0c611b58d6a9112b99cdd975a6ea087b472a Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 12 Jun 2023 21:16:41 +0200
Subject: [PATCH 013/106] Patch 0.2

---
 docker/release_setup.sh | 0
 1 file changed, 0 insertions(+), 0 deletions(-)
 mode change 100644 => 100755 docker/release_setup.sh

diff --git a/docker/release_setup.sh b/docker/release_setup.sh
old mode 100644
new mode 100755
-- 
GitLab


From 7bf5e02b2fbb16603f5ea067ddfb33844dcf8b33 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 13 Jun 2023 10:00:41 +0200
Subject: [PATCH 014/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 7812a70..77f8b39 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "031bd18a" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "96c0b552" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From b6eb66c6241d2f771e58e1be788831ead793cf22 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 14 Jun 2023 20:27:42 +0200
Subject: [PATCH 015/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 77f8b39..0c2c604 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "96c0b552" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "bd88b705" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 3a4f280e7944eee3792aabcb6735104cfb258b8f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 15 Jun 2023 12:35:20 +0200
Subject: [PATCH 016/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 0c2c604..f8fbb20 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "bd88b705" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "e4358078" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 30fc10e07e244e378a9bfce3e84540cf25db525e Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 16 Jun 2023 19:53:34 +0200
Subject: [PATCH 017/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index f8fbb20..4cebe23 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "e4358078" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "688208f0" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 69e47e1d1940504d675491bf3595dac5444acd15 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 23 Jun 2023 19:43:44 +0200
Subject: [PATCH 018/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 4cebe23..6399193 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "688208f0" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "73f0160a" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 829db56c3cd1ac8c64c6e8372f131306c6a1c4b6 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 26 Jun 2023 19:59:32 +0200
Subject: [PATCH 019/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 6399193..2a6d302 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "73f0160a" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "7bdba55c" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 5517d752235da5af6e97c280a9ff8975bc68645c Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Thu, 6 Jul 2023 14:26:29 +0200
Subject: [PATCH 020/106] Update TRExFitter and xRooFit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 2a6d302..9717546 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "7bdba55c" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "a0166764" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-23" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From aade8b63d6f65db33315a72b086b151c41837261 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 10 Jul 2023 17:19:52 +0200
Subject: [PATCH 021/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 9717546..e32214c 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "7bdba55c" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "df9fd2e2" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From e0f6f1fd75e8a0a00df3d11f32a3b23ec73f5b21 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Sun, 16 Jul 2023 12:04:42 +0200
Subject: [PATCH 022/106] bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9407ce5..801c0e6 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.2.2 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.2.3 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 8f23079ec5235ed8595af09a43f15aa989f98e8a Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Sun, 16 Jul 2023 12:06:02 +0200
Subject: [PATCH 023/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index e32214c..cb1806d 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "df9fd2e2" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "89b21da6" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 4e3e4b9ee59371e507cbfac64e90fd49d5afb654 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 19 Jul 2023 15:24:11 +0200
Subject: [PATCH 024/106] adding pyroot alias command

---
 CMakeLists.txt            |  1 +
 cmake/scripts/istartup.py | 18 ++++++++++++++++++
 cmake/scripts/setup.sh.in |  2 ++
 3 files changed, 21 insertions(+)
 create mode 100644 cmake/scripts/istartup.py

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 801c0e6..a347e25 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -70,6 +70,7 @@ add_custom_target(StatAnalysis_motd ALL
         ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd
         COMMAND ${CMAKE_COMMAND} -E remove ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd.tmp2)
 install( FILES ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd DESTINATION etc )
+install( FILES ${CMAKE_SOURCE_DIR}/cmake/scripts/istartup.py DESTINATION etc )
 
 if("${CMAKE_INSTALL_PREFIX}" STREQUAL
         "/${CMAKE_PROJECT_NAME}/${CMAKE_PROJECT_VERSION}/InstallArea/${ATLAS_PLATFORM}")
diff --git a/cmake/scripts/istartup.py b/cmake/scripts/istartup.py
new file mode 100644
index 0000000..9ca5d19
--- /dev/null
+++ b/cmake/scripts/istartup.py
@@ -0,0 +1,18 @@
+import ROOT; ROOT.gROOT.SetBatch(False);
+from ROOT import gROOT,gDirectory
+import argparse
+
+
+from sys import argv
+if len(argv)>1:
+    print(argv)
+    from IPython import get_ipython
+    ipython = get_ipython()
+    for a in argv[1:]:
+        if a.endswith(".root"):
+            print("Loading",a)
+            ROOT.gROOT.GetListOfFiles().Add(ROOT.TFile.Open(a))
+        else:
+            print("Running ",a)
+            ipython.run_line_magic("run",a)
+            
diff --git a/cmake/scripts/setup.sh.in b/cmake/scripts/setup.sh.in
index 24cf5a6..57d8b0c 100644
--- a/cmake/scripts/setup.sh.in
+++ b/cmake/scripts/setup.sh.in
@@ -155,6 +155,8 @@ if [ "x${ENV_VAR_VALUE}" = "x" ]; then
         export ROOTSYS=${@CMAKE_PROJECT_NAME@_DIR}
         # support for large workspaces by increasing the stack limit
         ulimit -S -s unlimited
+        # add useful alias
+        alias pyroot='ipython -i ${@CMAKE_PROJECT_NAME@_DIR}/etc/istartup.py'
         
         # Set up the XML path:
         export XMLPATH=${@CMAKE_PROJECT_NAME@_DIR}/XML:${XMLPATH}
-- 
GitLab


From 6822a5136a79d4a1e38041b592b504c22713c575 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 19 Jul 2023 15:38:58 +0200
Subject: [PATCH 025/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index cb1806d..9178b2b 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "89b21da6" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "16811b8c" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From ac46d74139f0b4d82d8ffd239b54eae479b7227e Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 26 Jul 2023 15:48:24 +0200
Subject: [PATCH 026/106] Update .gitlab-ci.yml - run test at same time as
 docker

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e5d174a..74d164e 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -121,7 +121,7 @@ docker:
 test:
   tags:
     - docker
-  stage: test
+  stage: docker
   image: gitlab-registry.cern.ch/atlas/statanalysis:base_image
   script:
     - source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh
-- 
GitLab


From d54df9b186b021571ee2496fd32da500e8ef4d1b Mon Sep 17 00:00:00 2001
From: Hamza Hanif <hamzahanif2210@gmail.com>
Date: Wed, 26 Jul 2023 14:27:00 -0700
Subject: [PATCH 027/106] updated trex-fitter

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 9178b2b..6a445d0 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "16811b8c" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-23" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "a98e268f" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From 5e0af2d120995e203b58d59ac30156f48fb4a715 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 7 Aug 2023 18:04:33 +0200
Subject: [PATCH 028/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 6a445d0..e773436 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "16811b8c" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "3086bd9c" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 1a0e893c150a55839d45e972fb65a24a2cf19bca Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Thu, 17 Aug 2023 22:07:10 +0200
Subject: [PATCH 029/106] Update gitlab ci script to never expire build jobs

---
 .gitlab-ci.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 74d164e..7f3d9c7 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -70,7 +70,7 @@ build:
       - ci_build/CMakeCache.txt
       - ci_build/src/*-stamp/*.log
       - cache.zip
-    expire_in: 1 day
+    expire_in: never
     when: always
   rules:
     - if: $CI_PIPELINE_SOURCE == "schedule" && $BUILD_BASE_IMAGE == "true"
-- 
GitLab


From 6fba49fb4728a3ef4b0997c5559ad745defccbd2 Mon Sep 17 00:00:00 2001
From: Matthew Feickert <matthew.feickert@cern.ch>
Date: Fri, 18 Aug 2023 10:38:39 +0200
Subject: [PATCH 030/106] feat: Update pyhf to release v0.7.3

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 6dd0f10..597f97e 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,7 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.2
+pyhf==0.7.3
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index e773436..186d2b4 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -88,7 +88,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
-set( STATANA_PYHF_VERSION "0.7.2" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "3086bd9c" CACHE STRING "Version of xRooFit"  )
-- 
GitLab


From 151721072aae944050a67b7eb87237e305898c30 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 22 Aug 2023 17:12:27 +0200
Subject: [PATCH 031/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 186d2b4..0070158 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "3086bd9c" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "c604b4d9" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From d18eefc6e2db31d6c50153a3114a449050904914 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Sun, 27 Aug 2023 11:17:44 +0200
Subject: [PATCH 032/106] Update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 0070158..98dac19 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "c604b4d9" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "0910f30b" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 9c02d1df119767e6fd14725d45616a8f87405fe9 Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Tue, 29 Aug 2023 11:22:59 +0200
Subject: [PATCH 033/106] Updating TRExFitter version

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 98dac19..d003fce 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "0910f30b" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "a98e268f" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-24" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From fcae7ae131fd7b61c6338a393f7bd44a5be5c541 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 1 Sep 2023 17:00:04 +0200
Subject: [PATCH 034/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index d003fce..96a482a 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "0910f30b" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "5974a8ca" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From b382a5bc91632695b707a45bc4020d52f23f81c5 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 4 Sep 2023 09:15:21 +0200
Subject: [PATCH 035/106] add histfitter to release

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 96a482a..f581589 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -94,7 +94,7 @@ set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitEx
 set( STATANA_XROOFIT_VERSION "5974a8ca" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
-set( STATANA_HISTFITTER_VERSION "" CACHE STRING "Version of HistFitter" )
+set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-24" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
-- 
GitLab


From 371995259c7c64751b8483f3f39d5b3f626147ac Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 6 Sep 2023 15:40:58 +0200
Subject: [PATCH 036/106] Update CMakeLists.txt - bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index a347e25..30fcde1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.2.3 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.2.4 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From bda837e05013f4ee24b99d7cf52b0505cefe9632 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 11 Sep 2023 12:51:56 +0200
Subject: [PATCH 037/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index f581589..ef1befd 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "5974a8ca" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "9cbbb90d" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From d67cbbfe410e437a800410a4ed8cab1c160f805a Mon Sep 17 00:00:00 2001
From: Matthew Feickert <matthew.feickert@cern.ch>
Date: Wed, 13 Sep 2023 19:25:38 +0200
Subject: [PATCH 038/106] feat: Update pyhf to release v0.7.4

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 597f97e..7bcf278 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,7 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.3
+pyhf==0.7.4
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index ef1befd..0869b4f 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -88,7 +88,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
-set( STATANA_PYHF_VERSION "0.7.3" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "9cbbb90d" CACHE STRING "Version of xRooFit"  )
-- 
GitLab


From f4d87d78e888df5fe90d7da9364ba5095ac53d47 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 13 Sep 2023 22:33:33 +0200
Subject: [PATCH 039/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 0869b4f..bcf73e2 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "9cbbb90d" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "a1026c4b" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From eea9c52c6a4c3017d6527943fe160f05ac8f3858 Mon Sep 17 00:00:00 2001
From: Alexander Held <alexander.held@cern.ch>
Date: Wed, 20 Sep 2023 15:10:14 +0200
Subject: [PATCH 040/106] feat: update cabinetry to v0.6.0

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 7bcf278..4b82d5b 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -10,4 +10,4 @@ gnureadline==8.1.2
 metakernel==0.29.0
 iminuit==2.17.0
 pytest==7.1.3
-cabinetry[contrib]==0.5.2
+cabinetry[contrib]==0.6.0
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index bcf73e2..79f904b 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -89,7 +89,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
-set( STATANA_CABINETRY_VERSION "0.5.2" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
+set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "a1026c4b" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
-- 
GitLab


From ed2bd97972eb271a38045cfb2a0384ef368dae46 Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Thu, 21 Sep 2023 12:01:50 +0200
Subject: [PATCH 041/106] Resolve "move to kaniko instead of
 docker-image-build"

---
 .gitlab-ci.yml | 79 ++++++++++++++++++++++----------------------------
 1 file changed, 35 insertions(+), 44 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7f3d9c7..a97d053 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -77,45 +77,29 @@ build:
       when: never
     - when: on_success
 
-## Collect versions of packages included in statanalysis and write to readme
-#collect_versions:
-#  stage: collect_versions
-#  image: python:3.9.15
-#  tags:
-#    - docker
-#  dependencies:
-#    - build
-#  script:
-#    - pip3 install pandas python-gitlab tabulate beautifulsoup4 dataframe_image lxml matplotlib requests pillow
-#    - python3 tools/externals_checker.py --CMakeCache_dir="./ci_build" --output_format="both" --output_dir="versions"
-#    - git config user.email "ci-bot@bot.com"
-#    - git config user.name "ci-bot"
-#    - git remote add gitlab_origin https://oauth2:$PUSH_TOKEN@gitlab.cern.ch/atlas/StatAnalysis.git
-#    - git add versions/*
-#    - git commit -m "push versions from pipeline" || echo "Versions not changed, not committing changes"
-#    - git push gitlab_origin HEAD:$CI_COMMIT_REF_NAME -o ci.skip # prevent triggering pipeline again
-#  allow_failure: true
-#  rules:
-#    - if: $CI_PIPELINE_SOURCE == "schedule"
-#      when: never
-#    - when: on_success
-
 # Setup for building a Docker image from the repository's compiled code.
 # This step also pushes the docker image if it is on the main repo 
 # and not in a fork
 docker:
-  stage: docker
-  tags:
-    - docker-image-build
-  script: echo
-  rules:
-    - if: (($CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"))
-      when: never
-    - if: $CI_PROJECT_NAMESPACE == "atlas"
-      variables:
-        TO: gitlab-registry.cern.ch/atlas/statanalysis:${CI_COMMIT_REF_SLUG}
-    - if: $CI_PROJECT_NAMESPACE != "atlas"
-    - when: on_success
+    stage: docker
+    image: 
+        name: gcr.io/kaniko-project/executor:debug
+        entrypoint: [""]
+    script:
+        # Prepare Kaniko configuration file
+        - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+        # Build and push the image from the Dockerfile at the root of the project.
+        - /kaniko/executor --context $CI_PROJECT_DIR --dockerfile $CI_PROJECT_DIR/Dockerfile $DESTINATION_FLAG
+        # Print the full registry path of the pushed image
+        - echo "Image pushed successfully with ${DESTINATION_FLAG}"
+    rules:
+      - if: (($CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"))
+        when: never
+      - if: $CI_PROJECT_NAMESPACE == "atlas"
+        variables:
+          DESTINATION_FLAG: --destination gitlab-registry.cern.ch/atlas/statanalysis:${CI_COMMIT_REF_SLUG}
+      - if: $CI_PROJECT_NAMESPACE != "atlas"
+      - when: on_success
 
 # Test by building and executing the testpackage
 test:
@@ -146,12 +130,19 @@ test:
 
 # This script only builds a base image with yum installations
 docker_base_image:
-  stage: docker_base_image
-  tags:
-    - docker-image-build
-  script: echo
-  variables:
-    TO: gitlab-registry.cern.ch/atlas/statanalysis:base_image
-    CONTEXT_DIR: docker/baseImage
-  rules:
-  - if: $CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"
+    stage: docker_base_image
+    image: 
+        name: gcr.io/kaniko-project/executor:debug
+        entrypoint: [""]
+    variables:
+        DESTINATION: gitlab-registry.cern.ch/atlas/statanalysis:${CI_COMMIT_REF_SLUG}
+        DOCKERFILE_PATH: ${CI_PROJECT_DIR}/docker/baseImage/Dockerfile
+    script:
+        # Prepare Kaniko configuration file
+        - echo "{\"auths\":{\"$CI_REGISTRY\":{\"username\":\"$CI_REGISTRY_USER\",\"password\":\"$CI_REGISTRY_PASSWORD\"}}}" > /kaniko/.docker/config.json
+        # Build and push the image from the Dockerfile at the root of the project.
+        - /kaniko/executor --context $CI_PROJECT_DIR --destination ${DESTINATION} --dockerfile ${DOCKERFILE_PATH}
+        # Print the full registry path of the pushed image
+        - echo "Image pushed successfully to ${DESTINATION}"
+    rules:
+    - if: $CI_PIPELINE_SOURCE == "schedule"  && $BUILD_BASE_IMAGE == "true"
-- 
GitLab


From 50b80a73a92707bee65b7040719a98ea85fd5d34 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 26 Sep 2023 14:13:26 +0200
Subject: [PATCH 042/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 79f904b..3fd7aac 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "a1026c4b" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "8fefd23e" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From f719d0b5d5dedd91d589254f66cd7da319b1f96b Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Tue, 26 Sep 2023 14:23:50 +0200
Subject: [PATCH 043/106] Also run pipeline for tags

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index a97d053..e7dd891 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -14,6 +14,7 @@ workflow:
     - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
       when: never
     - if: '$CI_COMMIT_BRANCH'
+    - if: $CI_COMMIT_TAG
 
 # "Global" build stages.
 stages:
-- 
GitLab


From 0badcaa53ebf22d8cdabbf6ccfbd429771f6381f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 2 Oct 2023 15:14:58 +0200
Subject: [PATCH 044/106] bump version to 0.2.5

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 30fcde1..b458e1f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.2.4 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.2.5 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 6c3b5493a20df7739a90aea7271503e04c9f8dd3 Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Mon, 2 Oct 2023 15:13:28 +0200
Subject: [PATCH 045/106] Removing tag: docker, as required per OTG0078219

---
 .gitlab-ci.yml | 4 ----
 1 file changed, 4 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index e7dd891..26a3834 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -43,8 +43,6 @@ before_script:
 # Configuration for the CMake build job. This job rebuilds the full repo and saves
 # the build directory as an artifac
 build:
-  tags:
-    - docker 
   stage: build
   image: gitlab-registry.cern.ch/atlas/statanalysis:base_image
   script:
@@ -104,8 +102,6 @@ docker:
 
 # Test by building and executing the testpackage
 test:
-  tags:
-    - docker
   stage: docker
   image: gitlab-registry.cern.ch/atlas/statanalysis:base_image
   script:
-- 
GitLab


From 39510667b4b2275e709954efb7f2521eec2eb25f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 3 Oct 2023 21:13:37 +0200
Subject: [PATCH 046/106] update xroofit - fixes bugs with histogram error
 bars, and limits with physical ranges

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 3fd7aac..388d972 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "8fefd23e" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "42fc19f5" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 0d0cbf9919d12b79b2d41069a47e937feac4cab5 Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Wed, 4 Oct 2023 20:05:33 +0200
Subject: [PATCH 047/106] TRExFitter udpate

---
 Externals/TRExFitter/CMakeLists.txt | 1 +
 ProjectOptions/CMakeLists.txt       | 2 +-
 2 files changed, 2 insertions(+), 1 deletion(-)

diff --git a/Externals/TRExFitter/CMakeLists.txt b/Externals/TRExFitter/CMakeLists.txt
index 517dafa..a908583 100644
--- a/Externals/TRExFitter/CMakeLists.txt
+++ b/Externals/TRExFitter/CMakeLists.txt
@@ -33,6 +33,7 @@ ExternalProject_Add( TRExFitter
         -DCMAKE_INSTALL_PREFIX:PATH=${_buildDir}
         -DTREXFITTER_NOHOME:BOOL=YES # disables hardcoding build directory into the code
         -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}  # ensures will discover the release's version of ROOT
+        -DUSE_LOCAL_XROOFIT:BOOL=NO
         LOG_DOWNLOAD ${_logging} LOG_CONFIGURE ${_logging} LOG_BUILD ${_logging} LOG_INSTALL ${_logging}
         LOG_OUTPUT_ON_FAILURE 1
         UPDATE_COMMAND "" # needed for next line to work
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 388d972..a888650 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "42fc19f5" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-24" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "9576fd0f" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From ead4814828777b26a0dc1ad47cd7edd15090c265 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 29 Nov 2023 17:12:59 +0100
Subject: [PATCH 048/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index a888650..1791513 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "42fc19f5" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 83de1f94798fcbaadba714403e35a4d5c4d8adfb Mon Sep 17 00:00:00 2001
From: Alexander Held <alexander.held@cern.ch>
Date: Thu, 30 Nov 2023 20:47:29 +0100
Subject: [PATCH 049/106] feat: update to TRExFitter version 00-04-26

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 1791513..1055740 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "9576fd0f" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-- 
GitLab


From e55e2ce172b2b128dc2bc3aa505dc064daad5487 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 1 Dec 2023 13:35:54 +0100
Subject: [PATCH 050/106] update root

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 1055740..ffa75e2 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -87,7 +87,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-28-04" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-30-03" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab


From bb366d4ad3fad9234ce04665360eee632f2164dd Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 5 Dec 2023 17:30:34 +0100
Subject: [PATCH 051/106] Update configure.sh.in - disable builtin davix

---
 Externals/ROOT/cmake/configure.sh.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Externals/ROOT/cmake/configure.sh.in b/Externals/ROOT/cmake/configure.sh.in
index 11276b1..ecfefe9 100755
--- a/Externals/ROOT/cmake/configure.sh.in
+++ b/Externals/ROOT/cmake/configure.sh.in
@@ -8,7 +8,7 @@
  -DCMAKE_IGNORE_PATH:STRING="/opt/local/bin;/opt/local/lib;/opt/local/include" \
  -DPython3_FIND_STRATEGY:STRING="LOCATION" \
  -DPython3_FIND_FRAMEWORK:STRING="LAST" \
- -Dbuiltin_gsl:BOOL=ON -Dtmva-cpu:BOOL=OFF \
+ -Dbuiltin_gsl:BOOL=ON -Dtmva-cpu:BOOL=OFF -Ddavix:BOOL=OFF \
  -Dbuiltin_freetype:BOOL=ON -Dbuiltin_lzma:BOOL=ON -Dbuiltin_veccore:BOOL=ON \
  -Dbuiltin_lz4:BOOL=ON -Dbuiltin_glew:BOOL=ON -Dbuiltin_veccore:BOOL=ON \
  -Dbuiltin_nlohmannjson:BOOL=ON -Dbuiltin_tbb:BOOL=ON -Dbuiltin_zstd:BOOL=ON -Dbuiltin_xrootd:BOOL=OFF \
-- 
GitLab


From f7fdec2b4bae3b2c5a89218648f6e21399b43fc9 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 5 Dec 2023 18:07:14 +0100
Subject: [PATCH 052/106] Update CMakeLists.txt

---
 Externals/RooUnfold/CMakeLists.txt | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/Externals/RooUnfold/CMakeLists.txt b/Externals/RooUnfold/CMakeLists.txt
index 8f1fcfc..ec947fa 100644
--- a/Externals/RooUnfold/CMakeLists.txt
+++ b/Externals/RooUnfold/CMakeLists.txt
@@ -6,6 +6,12 @@
 # The name of the package:
 atlas_subdir( RooUnfold )
 
+if( STATANA_ROOUNFOLD_VERSION STREQUAL "" )
+    message(STATUS "NOT BUILDING: RooUnfold")
+    return()
+endif()
+
+
 set( STATANA_ROOUNFOLD_REPOSITORY "${CERN_GITLAB_PREFIX}/RooUnfold/RooUnfold.git" CACHE STRING "Repository of RooUnfold" )
 
 
-- 
GitLab


From 2caeee474f0c48f77398c5c9557dc05bbe408315 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 5 Dec 2023 18:07:43 +0100
Subject: [PATCH 053/106] Update CMakeLists.txt

---
 ProjectOptions/CMakeLists.txt | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index ffa75e2..4123ccd 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -97,10 +97,10 @@ set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of Boot
 set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
-set( STATANA_ROOUNFOLD_VERSION "924c8b60" CACHE STRING "Version of RooUnfold" )
-set( STATANA_QUICKFIT_VERSION "e56ede5b" CACHE STRING "Version of quickFit" )
-set( STATANA_WORKSPACECOMBINER_VERSION "d41b333b" CACHE STRING "Version of workspaceCombiner" )
-set( STATANA_XMLANAWSBUILDER_VERSION "a89c1178" CACHE STRING "Version of xmlAnaWSBuilder" )
+set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
+set( STATANA_QUICKFIT_VERSION "" CACHE STRING "Version of quickFit" )
+set( STATANA_WORKSPACECOMBINER_VERSION "" CACHE STRING "Version of workspaceCombiner" )
+set( STATANA_XMLANAWSBUILDER_VERSION "ba8fda1a" CACHE STRING "Version of xmlAnaWSBuilder" )
 
 option( TRACK_CHANGES "forces cmake to detect changes in directories of submodules and recompile if changes detected - slower to build, but required for development" ON)
 
-- 
GitLab


From d63e2bbccb04be7ea8b62c1292e82946e66216e8 Mon Sep 17 00:00:00 2001
From: Hongtao Yang <hongtao.yang@cern.ch>
Date: Thu, 7 Dec 2023 17:07:06 +0100
Subject: [PATCH 054/106] Fix quickFit, xmlAnaWsBuilder, and workspaceCombiner
 compilation error in latest ROOT version

---
 ProjectOptions/CMakeLists.txt   |  6 +++---
 TestProject/cmake/testing.cmake | 13 +++++++++++--
 2 files changed, 14 insertions(+), 5 deletions(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 4123ccd..e8c1d02 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -98,9 +98,9 @@ set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
-set( STATANA_QUICKFIT_VERSION "" CACHE STRING "Version of quickFit" )
-set( STATANA_WORKSPACECOMBINER_VERSION "" CACHE STRING "Version of workspaceCombiner" )
-set( STATANA_XMLANAWSBUILDER_VERSION "ba8fda1a" CACHE STRING "Version of xmlAnaWSBuilder" )
+set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
+set( STATANA_WORKSPACECOMBINER_VERSION "2aeab14a" CACHE STRING "Version of workspaceCombiner" )
+set( STATANA_XMLANAWSBUILDER_VERSION "c84841c4" CACHE STRING "Version of xmlAnaWSBuilder" )
 
 option( TRACK_CHANGES "forces cmake to detect changes in directories of submodules and recompile if changes detected - slower to build, but required for development" ON)
 
diff --git a/TestProject/cmake/testing.cmake b/TestProject/cmake/testing.cmake
index c08d1df..b2f42f5 100644
--- a/TestProject/cmake/testing.cmake
+++ b/TestProject/cmake/testing.cmake
@@ -3,8 +3,17 @@ file(GLOB TestScripts "${CMAKE_CURRENT_SOURCE_DIR}/tests/*/*.sh")
 
 foreach(TestScript ${TestScripts})
   get_filename_component(TestName ${TestScript} NAME)
-  add_test(NAME ${TestName} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND bash -e ${TestScript})
-  set_tests_properties(${TestName} PROPERTIES ENVIRONMENT "PYTHONPATH=$ENV{PYTHONPATH}:${EXPORT_PYTHONPATH};LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${EXPORT_LD_LIBRARY_PATH}")
+  get_filename_component(TestDir ${TestScript} DIRECTORY)
+  get_filename_component(TestDir ${TestDir} NAME)
+  string(TOUPPER ${TestDir} TestDir)
+  # todo: this check requires the cmake cache variables to be moved somewhere so they can be loaded here
+  if( (NOT DEFINED ${STATANA_${TestDir}_VERSION}) OR (NOT ${STATANA_${TestDir}_VERSION} STREQUAL ""))
+    add_test(NAME ${TestName} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} COMMAND bash -e ${TestScript})
+    set_tests_properties(${TestName} PROPERTIES ENVIRONMENT "PYTHONPATH=$ENV{PYTHONPATH}:${EXPORT_PYTHONPATH};LD_LIBRARY_PATH=$ENV{LD_LIBRARY_PATH}:${EXPORT_LD_LIBRARY_PATH}")
+  else()
+    message(STATUS "Skipping test " ${TestScript})
+  endif()
 endforeach()
 
+
 enable_testing()
-- 
GitLab


From fa44a79f12be6e61149aefa8232c99a9b61de486 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 7 Dec 2023 18:13:31 +0100
Subject: [PATCH 055/106] update pyhf to 0.7.5

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 4b82d5b..9b022e6 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,7 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.4
+pyhf==0.7.5
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index e8c1d02..1c28bc5 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -88,7 +88,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-30-03" CACHE STRING "Version of ROOT")
-set( STATANA_PYHF_VERSION "0.7.4" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_PYHF_VERSION "0.7.5" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
-- 
GitLab


From 3d5fb11066ecd08de936ec388850f78e54a33e42 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 8 Dec 2023 16:33:03 +0100
Subject: [PATCH 056/106] Update CMakeLists.txt - fix version number

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index b458e1f..757987e 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.2.5 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.3.0 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From a1ac3add554730b76c804a5410daf99a9154855f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 11 Dec 2023 13:13:11 +0100
Subject: [PATCH 057/106] Switch 0.3 to alma9

---
 .gitlab-ci.yml                                   | 16 ++++++++--------
 CMakeLists.txt                                   |  3 +++
 Dockerfile                                       |  8 ++++----
 .../CMakeLists.txt                               |  0
 Externals/atlasexternals                         |  2 +-
 ProjectOptions/CMakeLists.txt                    |  2 +-
 6 files changed, 17 insertions(+), 14 deletions(-)
 rename Externals/{BoostrapGenerator => BootstrapGenerator}/CMakeLists.txt (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 26a3834..4faca51 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -34,7 +34,7 @@ variables:
 before_script:
   - export MAKEFLAGS="-j`nproc`"
   - echo $MAKEFLAGS
-  - export PATH="/opt/cmake/3.24.3/Linux-x86_64/bin/:$PATH"
+  - export PATH=/opt/cmake/3.27.5/Linux-x86_64/bin:/opt/lcg/ccache/4.7.4-3759c/x86_64-centos9-gcc11-opt/bin:$PATH
   - export MASTER_CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/master/raw/cache.zip?job=build"
   - export CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/${CI_COMMIT_REF_NAME}/raw/cache.zip?job=build"
   - mkdir -p ${CI_PROJECT_DIR}/cache
@@ -44,10 +44,10 @@ before_script:
 # the build directory as an artifac
 build:
   stage: build
-  image: gitlab-registry.cern.ch/atlas/statanalysis:base_image
+  image: gitlab-registry.cern.ch/atlas/statanalysis:base-image-alma
   script:
-    - source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh
-    - export CMAKE_CXX_COMPILER_LAUNCHER=/usr/bin/ccache; 
+    - source /opt/lcg/gcc/13.1.0*/x86_64-*/setup.sh
+    - export CMAKE_CXX_COMPILER_LAUNCHER=ccache; 
     - >
       if [ "404" != `curl -I $CACHE_URL | head -n 1|cut -d$' ' -f2` ]; then
         curl --output cache.zip "$CACHE_URL";
@@ -67,7 +67,7 @@ build:
     paths:
       - ci_build/*.rpm
       - ci_build/CMakeCache.txt
-      - ci_build/src/*-stamp/*.log
+      - ci_build/**/*-stamp/*.log
       - cache.zip
     expire_in: never
     when: always
@@ -103,12 +103,12 @@ docker:
 # Test by building and executing the testpackage
 test:
   stage: docker
-  image: gitlab-registry.cern.ch/atlas/statanalysis:base_image
+  image: gitlab-registry.cern.ch/atlas/statanalysis:base-image-alma
   script:
-    - source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh
+    - source /opt/lcg/gcc/13.1.0*/x86_64-*/setup.sh
     - export gcc_version="$(gcc -dumpfullversion)"; export gcc_version="${gcc_version%%.*}"
     - sudo rpm -i --replacepkgs --prefix="$(pwd)" ci_build/*.rpm # Install statanalysis in current directory
-    - source StatAnalysis/*/InstallArea/"$(uname -m)-centos7-gcc$gcc_version-opt"/setup.sh # Source statanalysis
+    - source StatAnalysis/*/InstallArea/*/setup.sh # Source statanalysis
     - mkdir TestProject/build
     - cd TestProject/build
     - cmake .. -Dbuild_test=true # Build testproject
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 757987e..e53001f 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,6 +3,9 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
+
+set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
+
 project( StatAnalysis VERSION 0.3.0 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
diff --git a/Dockerfile b/Dockerfile
index 88b08f4..6a2e3ec 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -2,16 +2,16 @@
 #   builder: copies the source code and compiles if necessary, then installing
 #  <last>: copies the installation so that the source code is dropped, but based on preBuilder to keep cmake etc
 
-FROM gitlab-registry.cern.ch/atlas/statanalysis:base_image AS builder
+FROM gitlab-registry.cern.ch/atlas/statanalysis:base-image-alma AS builder
 
 # Add cmake/cpack to path
-ENV PATH $PATH:/opt/cmake/3.24.3/Linux-x86_64/bin/
+ENV PATH $PATH:/opt/cmake/3.27.5/Linux-x86_64/bin
 
 COPY . /home/atlas/source/
 # Build StatAnalysis package
 RUN rpmFile=(/home/atlas/source/ci_build/*.rpm); \
     if [ ! -e "${rpmFile[0]}" ] 2>&1; then \
-    source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh && \
+    source /opt/lcg/gcc/13.1.0*/x86_64-*/setup.sh && \
     export MAKEFLAGS="-j`nproc` -l`nproc`" && \
     mkdir /home/atlas/source/ci_build && cd /home/atlas/source/ci_build && \
     cmake /home/atlas/source/ && cmake --build . && \
@@ -23,7 +23,7 @@ RUN rpmFile=(/home/atlas/source/ci_build/*.rpm); \
     sudo yum clean all
 
 # multistage build ... should mean we drop the bit above and just copy the release area...
-FROM gitlab-registry.cern.ch/atlas/statanalysis:base_image
+FROM gitlab-registry.cern.ch/atlas/statanalysis:base-image-alma
 
 # Set up the environment setup script.
 COPY docker/release_setup.sh /
diff --git a/Externals/BoostrapGenerator/CMakeLists.txt b/Externals/BootstrapGenerator/CMakeLists.txt
similarity index 100%
rename from Externals/BoostrapGenerator/CMakeLists.txt
rename to Externals/BootstrapGenerator/CMakeLists.txt
diff --git a/Externals/atlasexternals b/Externals/atlasexternals
index 73a6281..6d7a3a8 160000
--- a/Externals/atlasexternals
+++ b/Externals/atlasexternals
@@ -1 +1 @@
-Subproject commit 73a6281032e2affee342e198de4335af444e7330
+Subproject commit 6d7a3a808acedcad0ac8ec07323ae3481651d25c
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 1c28bc5..1f74945 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -46,7 +46,7 @@ else()
     endif()
 endif()
 option( ATLAS_BUILD_XROOTD
-        "Build XRootD as part of the release" ${_flag} )
+        "Build XRootD as part of the release" FALSE ) # update for alma9 ... will let ROOT do the build instead
 
 # Decide whether to build DCAP.
 set( _flag FALSE )
-- 
GitLab


From a0e4f80eea728bbe568efc9c3e8cc9a71afe832a Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Tue, 12 Dec 2023 10:41:50 +0100
Subject: [PATCH 058/106] main into 0.3 merge

---
 .gitlab-ci.yml             |  6 +++---
 Externals/Python/README.md |  6 ++----
 README.md                  | 28 +++++++++++++++++++++-------
 3 files changed, 26 insertions(+), 14 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 4faca51..1cc7436 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -32,7 +32,7 @@ variables:
 # Each job needs to start with setting up the build environment of the base
 # image.
 before_script:
-  - export MAKEFLAGS="-j`nproc`"
+  - export MAKEFLAGS="-j4" # reduce resource requirement on Gitlab runners
   - echo $MAKEFLAGS
   - export PATH=/opt/cmake/3.27.5/Linux-x86_64/bin:/opt/lcg/ccache/4.7.4-3759c/x86_64-centos9-gcc11-opt/bin:$PATH
   - export MASTER_CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/master/raw/cache.zip?job=build"
@@ -52,8 +52,8 @@ build:
       if [ "404" != `curl -I $CACHE_URL | head -n 1|cut -d$' ' -f2` ]; then
         curl --output cache.zip "$CACHE_URL";
         unzip -q cache.zip; rm cache.zip;
-      elif [ "404" != `curl -I $MASTER_CACHE_URL | head -n 1|cut -d$' ' -f2` ]; then
-        curl --output cache.zip "$MASTER_CACHE_URL";
+      elif [ "404" != `curl -I $MAIN_CACHE_URL | head -n 1|cut -d$' ' -f2` ]; then
+        curl --output cache.zip "$MAIN_CACHE_URL";
         unzip -q cache.zip; rm cache.zip;
       fi
     - mkdir -p ci_build
diff --git a/Externals/Python/README.md b/Externals/Python/README.md
index 9d15997..2468dc9 100644
--- a/Externals/Python/README.md
+++ b/Externals/Python/README.md
@@ -3,11 +3,9 @@ Python
 
 This package is used to build Python for the offline / analysis release.
 
-While most platforms provide Python natively, the ATLAS software strictly
-needs Python 2.7.X to work. Which is not the system default on SLC6 most
-notably. So we need to build our own version.
+Builds Python 3.10.6.
 
-Also on the latest versions of macOS we are unable to use the system
+On the latest versions of macOS we are unable to use the system
 default python version when SIP is enabled. So there we are also
 forced to build it ourselves if the user doesn't have a custom build
 in their environment already.
diff --git a/README.md b/README.md
index e4fea3c..18a3122 100644
--- a/README.md
+++ b/README.md
@@ -4,13 +4,21 @@
 
 StatAnalysis is an assembly of statistical analysis software, leveraging the ATLAS build-configuration system (AtlasCmake) to manage the compilation.
 
+The current active branches are:
+
+| Branch | Description | Recommended |
+| ------ | ----------- | ------------|
+| 0.2    | 6.28 ROOT with any software that is in use by ATLAS, centos7 | |
+| 0.3    | 6.30 ROOT with any software that is in use by ATLAS, will be alma9 | * |
+| main   | Master ROOT with any compatible software, intended for developers | |
+
 ## From any machine with cvmfs, such as lxplus, using setupATLAS
 
 StatAnalysis is available anywhere that ATLAS software it available through the `asetup` command. This includes lxplus. After you have made the `asetup` command available (ATLAS users on lxplus can run `setupATLAS`, for example) you can do:
 
 ```asm
 asetup StatAnalysis,<version ref> # For a specific full release version, OR:
-asetup master,StatAnalysis,latest # For the latest available nightly
+asetup StatAnalysis,0.3,latest # For the latest available nightly of the 0.3 branch
 ```
 
 ## Using docker images:
@@ -43,7 +51,7 @@ If this succeeds you can then whenever you want to use the project just do:
 source /path/to/install/setup.sh
 ```
 
-### prerequisites
+### Prerequisites
 
 You must have a modern version of cmake and a relatively modern version of gcc compiler. E.g on cvmfs you can do the following to get cmake 3.21 with gcc 11.2:
 
@@ -58,22 +66,28 @@ xcode-select --install
 ```
 which ensures you have compilers. You will also need to install cmake (google this, there are lots of ways).
 
-You also need git. During the build, this will also be used to checkout code of the tools included in StatAnalysis. If the build appears to freeze it may be that git is asking for your username and/or password to perform the checkout. You might then need to cache your username and password:
+You also need git. During the build, this will also be used to checkout code of the tools included in StatAnalysis. If the build appears to freeze it may be that git is asking for your username and/or password/ssh passphrase to perform the checkout. You might then need to cache your username and password:
 
 ```asm
-git config --global credential.helper cache
+git config --global credential.helper  "cache --timeout=86400"
 git config --global credential.https://gitlab.cern.ch.username <yourUserName>
 ```
 
-After calling that, you may encounter the build asking for your password (may be unclear this has happened, just hit enter to see the prompt again then enter password).
+As the build takes a long time, it is beneficial to add the longer timeout for the cache. The default is 15 minutes. After calling that, you may encounter the build asking for your password/ssh passphrase (may be unclear this has happened, just hit enter to see the prompt again then enter password).
+
+If you have ssh set up, you can also compile with the option `-DCERN_GITLAB_PREFIX="ssh://git@gitlab.cern.ch:7999"` to use ssh instead.
 
-If you have ssh set up, you can also compile with the option `-DCERN_GITLAB_PREFIX="ssh://git@gitlab.cern.ch:7999"` to usessh instead.
+Checkout the project (ensure this is done with recursive option because project has submodules) and create a build directory. 
+```asm
+git clone --recurse-submodules ssh://git@gitlab.cern.ch:7999/atlas/StatAnalysis.git
+```
 
-Checkout the project (ensure this is done with recursive option because project has submodules) and create a build directory. Decide where you would like the release installed to as well. Then do:
+Decide where you would like the release installed to as well. Then do:
 
 ```asm
 mkdir build; cd build
 cmake -DCMAKE_INSTALL_PREFIX=../install ../StatAnalysis
+make -j install
 ```
 
 Depending on what software you have installed on your machine you may need or otherwise choose to disable the building of some parts of the release if you encounter errors at this stage. Do this with the following options (in the form of `-D<OPTION>=OFF`):
-- 
GitLab


From f7eb34dd1229a5d1a8144af44f6db0caf1c96442 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 12 Dec 2023 15:07:17 +0100
Subject: [PATCH 059/106] Update release_setup.sh - fix gcc setup in 0.3

---
 docker/release_setup.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/docker/release_setup.sh b/docker/release_setup.sh
index e61d750..6040a23 100755
--- a/docker/release_setup.sh
+++ b/docker/release_setup.sh
@@ -7,7 +7,7 @@
 # used as an entrypoint script
 
 # Set up the compiler for the environment.
-source /opt/lcg/gcc/11.2.0/x86_64-centos7/setup.sh
+source /opt/lcg/gcc/13.1.0*/x86_64-*/setup.sh
 
 # Set up the {{cookiecutter.project_name}} installation:
 source /usr/StatAnalysis/*/InstallArea/*/setup.sh
-- 
GitLab


From 4cce9be931134a391ed6dc86c685f8bcd2eb8be6 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 13 Dec 2023 13:41:17 +0100
Subject: [PATCH 060/106] Update boost to 1.82

---
 Externals/Boost/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/Boost/CMakeLists.txt b/Externals/Boost/CMakeLists.txt
index 4a2b9aa..86f0c23 100644
--- a/Externals/Boost/CMakeLists.txt
+++ b/Externals/Boost/CMakeLists.txt
@@ -21,8 +21,8 @@ message( STATUS "Building Boost as part of this project" )
 
 # The source code of Boost:
 set( _boostSource
-   "http://cern.ch/lcgpackages/tarFiles/sources/boost_1_75_0.tar.gz" )
-set( _boostMd5 "38813f6feb40387dfe90160debd71251" )
+   "http://cern.ch/lcgpackages/tarFiles/sources/boost_1_82_0.tar.gz" )
+set( _boostMd5 "f7050f554a65f6a42ece221eaeec1660" )
 
 # Temporary directory for the build results:
 set( _buildDir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/BoostBuild )
-- 
GitLab


From 9e8c300c4495b7890c4edf6f0023f1856d6dcbaf Mon Sep 17 00:00:00 2001
From: Aurora Singstad Grefsrud <aurora.grefsrud@hvl.no>
Date: Wed, 3 Jan 2024 15:54:44 +0100
Subject: [PATCH 061/106] Updating HistFitter

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 1f74945..3590a8e 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -94,7 +94,7 @@ set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitEx
 set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
-set( STATANA_HISTFITTER_VERSION "v1.3.0" CACHE STRING "Version of HistFitter" )
+set( STATANA_HISTFITTER_VERSION "v1.3.1" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
-- 
GitLab


From 4f0be7880d3e67992af48150e319d2f7d512936f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 3 Jan 2024 16:03:31 +0100
Subject: [PATCH 062/106] Update .gitlab-ci.yml

---
 .gitlab-ci.yml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 1cc7436..ff681d4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -98,6 +98,7 @@ docker:
         variables:
           DESTINATION_FLAG: --destination gitlab-registry.cern.ch/atlas/statanalysis:${CI_COMMIT_REF_SLUG}
       - if: $CI_PROJECT_NAMESPACE != "atlas"
+        when: never # don't run docker image step in forks
       - when: on_success
 
 # Test by building and executing the testpackage
-- 
GitLab


From 0d5cbc8a383ae1597e619de509139003864ed2f1 Mon Sep 17 00:00:00 2001
From: Matthew Feickert <matthew.feickert@cern.ch>
Date: Mon, 8 Jan 2024 12:07:36 +0100
Subject: [PATCH 063/106] feat: Update pyhf to release v0.7.6 for 0.3

---
 Externals/PyExternals/requirements.txt | 2 +-
 ProjectOptions/CMakeLists.txt          | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index 9b022e6..c58bf11 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,7 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.5
+pyhf==0.7.6
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 3590a8e..874b641 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -88,7 +88,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
 set( STATANA_ROOT_VERSION "v6-30-03" CACHE STRING "Version of ROOT")
-set( STATANA_PYHF_VERSION "0.7.5" CACHE STRING "Version of pyhf" ) # this currently does nothing!
+set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
-- 
GitLab


From 98e5c277c3120aa7bb22678309c6f1fd1c695593 Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Mon, 8 Jan 2024 15:20:52 +0100
Subject: [PATCH 064/106] bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index e53001f..53942d1 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.3.0 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.3.1 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From b64d186fe2a99693224125e8518bf5b943178a5c Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 9 Jan 2024 20:16:41 +0100
Subject: [PATCH 065/106] Update CMakeLists.txt - update numpy and cython

---
 Externals/PyAnalysis/CMakeLists.txt | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/Externals/PyAnalysis/CMakeLists.txt b/Externals/PyAnalysis/CMakeLists.txt
index e48f3d2..1db7625 100644
--- a/Externals/PyAnalysis/CMakeLists.txt
+++ b/Externals/PyAnalysis/CMakeLists.txt
@@ -87,8 +87,8 @@ if( NOT NUMPY_FOUND OR ATLAS_BUILD_PYTHON )
 
    # Build/install Cython.
    set( _source
-           "https://cern.ch/lcgpackages/tarFiles/sources/Cython-0.29.28.tar.gz" )
-   set( _md5 "0e98543dca816300a27e7d76146a6280" )
+           "https://cern.ch/lcgpackages/tarFiles/sources/Cython-0.29.33.tar.gz" )
+   set( _md5 "bd42c555cb2298b8a94fa8de7ee679ba" )
    ExternalProject_Add( Cython
            PREFIX ${CMAKE_BINARY_DIR}
            INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
@@ -112,8 +112,8 @@ if( NOT NUMPY_FOUND OR ATLAS_BUILD_PYTHON )
 
    # Build/install numpy:
    set( _source
-           "http://cern.ch/lcgpackages/tarFiles/sources/numpy-1.22.3.tar.gz" )
-   set( _md5 "3305c27e5bdf7f19247a7eee00ac053e" )
+           "http://cern.ch/lcgpackages/tarFiles/sources/numpy-1.23.5.tar.gz" )
+   set( _md5 "8b2692a511a3795f3af8af2cd7566a15" )
    ExternalProject_Add( numpy
            PREFIX ${CMAKE_BINARY_DIR}
            INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
@@ -127,6 +127,7 @@ if( NOT NUMPY_FOUND OR ATLAS_BUILD_PYTHON )
            PYTHONPATH=${_sitePkgsDir}
            LD_LIBRARY_PATH=$<TARGET_FILE_DIR:libffi::ffi>
            DYLD_LIBRARY_PATH=$<TARGET_FILE_DIR:libffi::ffi>
+           ATLAS=None
            ${Python_EXECUTABLE} <SOURCE_DIR>/setup.py build
            INSTALL_COMMAND ${CMAKE_COMMAND} -E env --unset=SHELL
            PYTHONPATH=${_sitePkgsDir}
-- 
GitLab


From b6fa0cf60be3f4499b20c1decaa78ca2f691cab1 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 9 Jan 2024 18:54:18 +0100
Subject: [PATCH 066/106] Update .gitlab-ci.yml - do not allow test failures in
 a numbered branch

---
 .gitlab-ci.yml | 1 -
 1 file changed, 1 deletion(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ff681d4..8667f22 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -116,7 +116,6 @@ test:
     - make
     - ctest --output-on-failure --output-junit ./../testRes.xml # Actually execute tests embedded in testproject
     - ls ./../
-  allow_failure: true # IMPORTANT: Should remove this line once tests are fixed (can handle missing components)
   artifacts:
     when: always
     reports:
-- 
GitLab


From 06299e3cf4b943ec8cff98143729dda63bc300b4 Mon Sep 17 00:00:00 2001
From: Aurora Singstad Grefsrud <aurora.grefsrud@hvl.no>
Date: Mon, 15 Jan 2024 10:41:19 +0100
Subject: [PATCH 067/106] Add pandas, pyhf backends and some tests

---
 Externals/PyExternals/requirements.txt        |  3 +-
 .../tests/histfitter/test-histfitter.sh       | 30 +++++++++++++++++++
 .../tests/pyAnalysis/import-python-modules.py | 14 +++++++++
 .../tests/pyAnalysis/test-py-analysis.sh      | 12 ++++++++
 .../import-external-python-modules.py         | 14 +++++++++
 .../tests/pyExternals/test-py-externals.sh    | 12 ++++++++
 6 files changed, 84 insertions(+), 1 deletion(-)
 create mode 100644 TestProject/tests/histfitter/test-histfitter.sh
 create mode 100644 TestProject/tests/pyAnalysis/import-python-modules.py
 create mode 100644 TestProject/tests/pyAnalysis/test-py-analysis.sh
 create mode 100644 TestProject/tests/pyExternals/import-external-python-modules.py
 create mode 100644 TestProject/tests/pyExternals/test-py-externals.sh

diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index c58bf11..dd2c065 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -3,7 +3,8 @@
 # List of python modules to install as part of the statistics release.
 #
 
-pyhf==0.7.6
+pyhf[minuit, xmlio]==0.7.6
+pandas~=2.1.1
 ipython==8.2.0
 ipykernel==6.15.0
 gnureadline==8.1.2
diff --git a/TestProject/tests/histfitter/test-histfitter.sh b/TestProject/tests/histfitter/test-histfitter.sh
new file mode 100644
index 0000000..7098198
--- /dev/null
+++ b/TestProject/tests/histfitter/test-histfitter.sh
@@ -0,0 +1,30 @@
+#!/bin/bash
+
+#Set up histfitter environment
+mkdir histfitter_test
+cd histfitter_test
+source setup_histfitter.sh -t -e
+exit_code=$?
+
+#Test if histfitter setup script is available
+if [[ $exit_code == 1 ]]; then
+    echo "setup_histfitter.sh is not properly installed."
+    exit 1
+
+#If it is, continue the test
+else
+    #Run pytests
+    pytest --disable-warnings
+    exit_code=$?
+    cd ..
+
+    #Cleanup
+    rm histfitter_test -rf
+
+    #See if any tests failed
+    if [[ $exit_code == 1 ]]; then
+        echo "One or more tests did not pass."
+        exit 1
+    fi
+fi
+
diff --git a/TestProject/tests/pyAnalysis/import-python-modules.py b/TestProject/tests/pyAnalysis/import-python-modules.py
new file mode 100644
index 0000000..f1d1b37
--- /dev/null
+++ b/TestProject/tests/pyAnalysis/import-python-modules.py
@@ -0,0 +1,14 @@
+import sys
+
+imports = ["numpy", "cython"]
+modules = []
+failed_imports = 0
+for x in imports:
+    try:
+        modules.append(__import__(x))
+        #print ("Successfully imported ", x, '.')
+    except ImportError:
+        print ("Error importing ", x, '.')
+        failed_imports+=1
+if failed_imports > 0:
+    sys.exit(1)
\ No newline at end of file
diff --git a/TestProject/tests/pyAnalysis/test-py-analysis.sh b/TestProject/tests/pyAnalysis/test-py-analysis.sh
new file mode 100644
index 0000000..ed3efca
--- /dev/null
+++ b/TestProject/tests/pyAnalysis/test-py-analysis.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#Change to this directory
+cd `dirname "$0"`
+
+#Run python script
+python import-python-modules.py
+exit_code=$?
+if [[ $exit_code == 1 ]]; then
+    echo "One or more modules not found"
+    exit 1
+fi
\ No newline at end of file
diff --git a/TestProject/tests/pyExternals/import-external-python-modules.py b/TestProject/tests/pyExternals/import-external-python-modules.py
new file mode 100644
index 0000000..692f14d
--- /dev/null
+++ b/TestProject/tests/pyExternals/import-external-python-modules.py
@@ -0,0 +1,14 @@
+import sys
+
+imports = ["pyhf", "pandas", "cabinetry"]
+modules = []
+failed_imports = 0
+for x in imports:
+    try:
+        modules.append(__import__(x))
+        #print ("Successfully imported ", x, '.')
+    except ImportError:
+        print ("Error importing ", x, '.')
+        failed_imports+=1
+if failed_imports > 0:
+    sys.exit(1)
diff --git a/TestProject/tests/pyExternals/test-py-externals.sh b/TestProject/tests/pyExternals/test-py-externals.sh
new file mode 100644
index 0000000..f8c3406
--- /dev/null
+++ b/TestProject/tests/pyExternals/test-py-externals.sh
@@ -0,0 +1,12 @@
+#!/bin/bash
+
+#Change to this directory
+cd `dirname "$0"`
+
+#Run python script
+python import-external-python-modules.py
+exit_code=$?
+if [[ $exit_code == 1 ]]; then
+    echo "One or more modules not found"
+    exit 1
+fi
\ No newline at end of file
-- 
GitLab


From 990a9af985d790757b77a0837cfa567484c2f5e3 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 16 Jan 2024 16:59:23 +0100
Subject: [PATCH 068/106] sudo rpm install

---
 Dockerfile | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Dockerfile b/Dockerfile
index 6a2e3ec..cb31037 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,7 +17,7 @@ RUN rpmFile=(/home/atlas/source/ci_build/*.rpm); \
     cmake /home/atlas/source/ && cmake --build . && \
     cpack -G RPM ; fi && \
 # Install the RPM
-    rpm -i /home/atlas/source/ci_build/*.rpm && \
+    sudo rpm -i /home/atlas/source/ci_build/*.rpm && \
 # Clean up to save space
     rm -rf /home/atlas/source && \
     sudo yum clean all
-- 
GitLab


From a1f2c8f410c99ccccc5360b4e05240d746d45a79 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 8 Feb 2024 15:22:20 +0100
Subject: [PATCH 069/106] Update CMakeLists.txt - new ROOT patch version of
 ROOT

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 874b641..e25b1df 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -87,7 +87,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-30-03" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab


From 8d685eea69204811fb471fe6bf43d1918b7979fb Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 19 Feb 2024 12:02:08 +0100
Subject: [PATCH 070/106] Update configure.sh.in - try to build xrootd in ROOT

---
 Externals/ROOT/cmake/configure.sh.in | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/Externals/ROOT/cmake/configure.sh.in b/Externals/ROOT/cmake/configure.sh.in
index ecfefe9..c51a473 100755
--- a/Externals/ROOT/cmake/configure.sh.in
+++ b/Externals/ROOT/cmake/configure.sh.in
@@ -11,7 +11,7 @@
  -Dbuiltin_gsl:BOOL=ON -Dtmva-cpu:BOOL=OFF -Ddavix:BOOL=OFF \
  -Dbuiltin_freetype:BOOL=ON -Dbuiltin_lzma:BOOL=ON -Dbuiltin_veccore:BOOL=ON \
  -Dbuiltin_lz4:BOOL=ON -Dbuiltin_glew:BOOL=ON -Dbuiltin_veccore:BOOL=ON \
- -Dbuiltin_nlohmannjson:BOOL=ON -Dbuiltin_tbb:BOOL=ON -Dbuiltin_zstd:BOOL=ON -Dbuiltin_xrootd:BOOL=OFF \
+ -Dbuiltin_nlohmannjson:BOOL=ON -Dbuiltin_tbb:BOOL=ON -Dbuiltin_zstd:BOOL=ON -Dbuiltin_xrootd:BOOL=ON \
  -Dbuiltin_vdt:BOOL=ON \
  -Dccache:BOOL=ON \
  @_configureArgs@ @CMAKE_BINARY_DIR@/src/ROOT
-- 
GitLab


From db5df347090b8b5ee911f74386c0cf6462d3b0b7 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 20 Feb 2024 11:08:42 +0100
Subject: [PATCH 071/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index e25b1df..7363988 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "4ffc88a0" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "82712ca1" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.1" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 812bdefac763abd3a3ad9d8cdb671be8571f2bef Mon Sep 17 00:00:00 2001
From: Jonathan Long <longjon@umich.edu>
Date: Wed, 6 Mar 2024 16:11:07 +0100
Subject: [PATCH 072/106] Update HistFitter to 1.3.2

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 7363988..e1ef15e 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -94,7 +94,7 @@ set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitEx
 set( STATANA_XROOFIT_VERSION "82712ca1" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
-set( STATANA_HISTFITTER_VERSION "v1.3.1" CACHE STRING "Version of HistFitter" )
+set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
-- 
GitLab


From 948f45543dd9b638216daa146637eebdf2d9b106 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 12 Mar 2024 10:55:20 +0100
Subject: [PATCH 073/106] Update CMakeLists.txt - bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 53942d1..de16e09 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.3.1 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.3.2 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 14521e0686247b1dd50e1673f5522b6ad9372e39 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 13 Mar 2024 16:34:46 +0100
Subject: [PATCH 074/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index e1ef15e..ef42e23 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "82712ca1" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "9603d5f2" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From f92107caef99e3f25b2a3b461177b42bbe5d0945 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 18 Mar 2024 14:34:30 +0100
Subject: [PATCH 075/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index ef42e23..82b4bdf 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "9603d5f2" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "a3439e39" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 61f7cd8ff0d8dedda7f6d57d36098482fd5a1ef1 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 22 Mar 2024 19:06:31 +0100
Subject: [PATCH 076/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 82b4bdf..994f861 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "a3439e39" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "d4848ca7" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 91a7ebf425ab237e424285a04ffbee61425b919b Mon Sep 17 00:00:00 2001
From: Mohamed Aly <mohamed.aly@cern.ch>
Date: Thu, 4 Apr 2024 18:02:46 +0200
Subject: [PATCH 077/106] Update 0.3 to TRExFitter-00-04-27

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 994f861..6725ae3 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -95,7 +95,7 @@ set( STATANA_XROOFIT_VERSION "d4848ca7" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-26" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-27" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-- 
GitLab


From ae8eb68cbae9a0c198b2747065b944da73c36497 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 8 Apr 2024 18:48:30 +0200
Subject: [PATCH 078/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 6725ae3..fba8c42 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -91,7 +91,7 @@ set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "d4848ca7" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "d60cae82" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From e97dab2cdd2bed00bdc61ad107701b89711a9b8a Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 11 Apr 2024 12:11:53 +0200
Subject: [PATCH 079/106] Update configure.sh.in - enable multiprocess roofit
 option (for ModularL)

---
 Externals/ROOT/cmake/configure.sh.in | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Externals/ROOT/cmake/configure.sh.in b/Externals/ROOT/cmake/configure.sh.in
index c51a473..674b184 100755
--- a/Externals/ROOT/cmake/configure.sh.in
+++ b/Externals/ROOT/cmake/configure.sh.in
@@ -13,5 +13,6 @@
  -Dbuiltin_lz4:BOOL=ON -Dbuiltin_glew:BOOL=ON -Dbuiltin_veccore:BOOL=ON \
  -Dbuiltin_nlohmannjson:BOOL=ON -Dbuiltin_tbb:BOOL=ON -Dbuiltin_zstd:BOOL=ON -Dbuiltin_xrootd:BOOL=ON \
  -Dbuiltin_vdt:BOOL=ON \
+ -Droofit_multiprocess=ON \
  -Dccache:BOOL=ON \
  @_configureArgs@ @CMAKE_BINARY_DIR@/src/ROOT
-- 
GitLab


From 9867846e3de9dcff4598cd5f25e2979e073c1ac6 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 11 Apr 2024 19:37:41 +0200
Subject: [PATCH 080/106] Add Eigen

---
 ProjectOptions/CMakeLists.txt | 10 ++++++++++
 package_filters.txt           |  1 +
 2 files changed, 11 insertions(+)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index fba8c42..40d86d5 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -10,6 +10,7 @@ find_package( dcap QUIET )
 find_package( Davix QUIET )
 find_package( OpenSSL QUIET )
 find_package( UUID QUIET )
+find_package( Eigen QUIET )
 # find_package( TBB 2018 QUIET ) # - commented out because trouble with 2021 versions so just build in the project instead
 
 # Get the OS name.
@@ -48,6 +49,15 @@ endif()
 option( ATLAS_BUILD_XROOTD
         "Build XRootD as part of the release" FALSE ) # update for alma9 ... will let ROOT do the build instead
 
+if (NOT EIGEN_FOUND OR ATLAS_BUILD_EIGEN )
+    set( _flag TRUE )
+else()
+    set( _flag FALSE )
+endif()
+
+option( ATLAS_BUILD_EIGEN "Build Eigen as part of the release" ${_flag} )
+
+
 # Decide whether to build DCAP.
 set( _flag FALSE )
 #if( NOT DCAP_FOUND AND _osIsValid AND
diff --git a/package_filters.txt b/package_filters.txt
index f28ff71..d5162f6 100644
--- a/package_filters.txt
+++ b/package_filters.txt
@@ -8,6 +8,7 @@
 + Externals/atlasexternals/External/dcap
 # + Externals/atlasexternals/External/Python
 # + Externals/atlasexternals/External/TBB -- ROOT can build for us
++ Externals/atlasexternals/External/Eigen
 
 # Do not pick up anything else from atlasexternals.
 - Externals/atlasexternals.*
-- 
GitLab


From 8a69e8fe97cedf97ab61d2aca7fa5d8792f2d224 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 15 Apr 2024 19:45:26 +0200
Subject: [PATCH 081/106] Update CMakeLists.txt - update ROOT to 6.30.06

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 40d86d5..73feb81 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -97,7 +97,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-30-04" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-30-06" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab


From 5162d4f6648cf6e262bba81b2aba6b02e3fc4471 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 16 Apr 2024 11:47:35 +0200
Subject: [PATCH 082/106] Update CMakeLists.txt - bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index de16e09..279d2a7 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.3.2 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.3.3 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 1b518b93a761b532ef5a12d9dbe74b8498cac5c6 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 19 Apr 2024 19:14:48 +0200
Subject: [PATCH 083/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 73feb81..3c4b712 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -101,7 +101,7 @@ set( STATANA_ROOT_VERSION "v6-30-06" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "d60cae82" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "7618fec1" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From e1269181c1ef6807782e3893980e152329bbb6bf Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Mon, 29 Apr 2024 15:12:25 +0200
Subject: [PATCH 084/106] TRExFitter update

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 3c4b712..ab72280 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -105,7 +105,7 @@ set( STATANA_XROOFIT_VERSION "7618fec1" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-27" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-28" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-- 
GitLab


From cf911902b9ac162c3abb15785389ee0ce601b3ec Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 30 Apr 2024 12:35:36 +0200
Subject: [PATCH 085/106] Update CMakeLists.txt - bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 279d2a7..d05799a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.3.3 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.3.4 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 8e10393de027546892fff84c2d87eaffb5fa1aae Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 6 May 2024 17:12:05 +0200
Subject: [PATCH 086/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index ab72280..5044f25 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -101,7 +101,7 @@ set( STATANA_ROOT_VERSION "v6-30-06" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "7618fec1" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "43962c21" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 9bc56cd6746fee4c4008fafb093884308b21616c Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 9 May 2024 19:23:46 +0200
Subject: [PATCH 087/106] Update CMakeLists.txt - update xroofit

---
 .gitlab-ci.yml                | 2 +-
 ProjectOptions/CMakeLists.txt | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 8667f22..ba107d4 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -68,7 +68,7 @@ build:
       - ci_build/*.rpm
       - ci_build/CMakeCache.txt
       - ci_build/**/*-stamp/*.log
-      - cache.zip
+      # - cache.zip # commented out b.c. hitting gitlab payload limits again
     expire_in: never
     when: always
   rules:
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 5044f25..af4dc38 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -101,7 +101,7 @@ set( STATANA_ROOT_VERSION "v6-30-06" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "43962c21" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "da7c74f0" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 37c546d7702a2c3ecdaafbdac1d32261e79c572d Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 28 May 2024 15:06:09 +0200
Subject: [PATCH 088/106] Update ROOT to 6.32.00

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index af4dc38..23c12d4 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -97,7 +97,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-30-06" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-32-00" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab


From 6082fc2f1f6a428d7957e79d717240a6ec24982a Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 28 May 2024 15:22:33 +0200
Subject: [PATCH 089/106] Update CMakeLists.txt - remove deprecated option

---
 Externals/ROOT/CMakeLists.txt | 2 --
 1 file changed, 2 deletions(-)

diff --git a/Externals/ROOT/CMakeLists.txt b/Externals/ROOT/CMakeLists.txt
index a5ed356..2e63d1a 100644
--- a/Externals/ROOT/CMakeLists.txt
+++ b/Externals/ROOT/CMakeLists.txt
@@ -95,8 +95,6 @@ if( "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR
    list( APPEND _extraArgs -Dbuiltin_fftw3:BOOL=ON )
 endif()
 
-list( APPEND _extraArgs -Dminuit2:BOOL=ON )
-
 # Generate the script that will configure the build of ROOT.
 string( REPLACE ";" " " _configureArgs "${_extraArgs}" )
 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/configure.sh.in
-- 
GitLab


From 04bf450a4817ccc81e61cc26c37d782bb5e90503 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 28 May 2024 16:47:04 +0200
Subject: [PATCH 090/106] Update CMakeLists.txt - boot out incompatible
 projects

---
 ProjectOptions/CMakeLists.txt | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 23c12d4..b958b62 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -102,14 +102,14 @@ set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this curren
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
 set( STATANA_XROOFIT_VERSION "da7c74f0" CACHE STRING "Version of xRooFit"  )
-set( STATANA_COMMONSTATTOOLS_VERSION "39f8ee13" CACHE STRING "Version of CommonStatTools" )
+set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-28" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-set( STATANA_WORKSPACECOMBINER_VERSION "2aeab14a" CACHE STRING "Version of workspaceCombiner" )
+set( STATANA_WORKSPACECOMBINER_VERSION "" CACHE STRING "Version of workspaceCombiner" )
 set( STATANA_XMLANAWSBUILDER_VERSION "c84841c4" CACHE STRING "Version of xmlAnaWSBuilder" )
 
 option( TRACK_CHANGES "forces cmake to detect changes in directories of submodules and recompile if changes detected - slower to build, but required for development" ON)
-- 
GitLab


From a97bc08039c9c46a6893d71df8e57f0db89ba4c0 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 29 May 2024 10:51:40 +0200
Subject: [PATCH 091/106] Update CMakeLists.txt - update number

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index d05799a..192ecf2 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -6,7 +6,7 @@ set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.3.4 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.4.0 LANGUAGES C CXX )
 
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
-- 
GitLab


From 5aa5f87c48a3a8376a2ff903ba69e765d4c01a42 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 29 May 2024 12:48:59 +0200
Subject: [PATCH 092/106] Update test-workspaceCombiner.sh - remove test while
 wsCombiner incompatible with 0.4

---
 TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh b/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
index 65ecc6c..53f10c9 100644
--- a/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
+++ b/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
@@ -1,2 +1,2 @@
 # Printing workspace content
-manager -w print -f test_workspace.root --wsName Test
+# manager -w print -f test_workspace.root --wsName Test
-- 
GitLab


From 3e143c3f37c4c95534c2b9ef415fed4f9e8a06c4 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 29 May 2024 18:20:06 +0200
Subject: [PATCH 093/106] Update CMakeLists.txt - update xRooFit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index b958b62..0035e21 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -101,7 +101,7 @@ set( STATANA_ROOT_VERSION "v6-32-00" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "da7c74f0" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "09d8c0bc" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 89e4c071e81c7a369272268dc7e1987189badd5b Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 30 May 2024 17:30:25 +0200
Subject: [PATCH 094/106] Update 0.4 with developments from main - particularly
 CMS Combine

---
 .gitlab-ci.yml                                | 12 ++--
 CMakeLists.txt                                |  5 +-
 Externals/CMSCombine/CMakeLists.txt           | 70 +++++++++++++++++++
 .../CMSCombine/cmake/FindCMSCombine.cmake     | 31 ++++++++
 Externals/PyExternals/requirements.txt        |  1 +
 Externals/ROOT/CMakeLists.txt                 |  1 +
 ProjectOptions/CMakeLists.txt                 |  2 +-
 README.md                                     |  8 ++-
 cmake/scripts/istartup.py                     |  1 -
 cmake/scripts/motd.in                         |  3 +-
 cmake/versioning.cmake                        |  2 +-
 docker/baseImage/Dockerfile                   | 10 +--
 package_filters.txt                           |  2 +-
 13 files changed, 125 insertions(+), 23 deletions(-)
 create mode 100644 Externals/CMSCombine/CMakeLists.txt
 create mode 100644 Externals/CMSCombine/cmake/FindCMSCombine.cmake

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index ba107d4..7f99773 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -35,7 +35,7 @@ before_script:
   - export MAKEFLAGS="-j4" # reduce resource requirement on Gitlab runners
   - echo $MAKEFLAGS
   - export PATH=/opt/cmake/3.27.5/Linux-x86_64/bin:/opt/lcg/ccache/4.7.4-3759c/x86_64-centos9-gcc11-opt/bin:$PATH
-  - export MASTER_CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/master/raw/cache.zip?job=build"
+  - export MAIN_CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/main/raw/cache.zip?job=build"
   - export CACHE_URL="https://gitlab.cern.ch/api/v4/projects/122672/jobs/artifacts/${CI_COMMIT_REF_NAME}/raw/cache.zip?job=build"
   - mkdir -p ${CI_PROJECT_DIR}/cache
   - export CCACHE_DIR=${CI_PROJECT_DIR}/cache
@@ -47,7 +47,7 @@ build:
   image: gitlab-registry.cern.ch/atlas/statanalysis:base-image-alma
   script:
     - source /opt/lcg/gcc/13.1.0*/x86_64-*/setup.sh
-    - export CMAKE_CXX_COMPILER_LAUNCHER=ccache; 
+    - export CMAKE_CXX_COMPILER_LAUNCHER=ccache;
     - >
       if [ "404" != `curl -I $CACHE_URL | head -n 1|cut -d$' ' -f2` ]; then
         curl --output cache.zip "$CACHE_URL";
@@ -62,7 +62,8 @@ build:
     - cmake --build .
     - cpack -G RPM
     - cd ..
-    - zip -q -r ./cache.zip cache
+    - zip -q -r -9 ./cache.zip cache
+    - du -hs cache.zip
   artifacts:
     paths:
       - ci_build/*.rpm
@@ -81,7 +82,7 @@ build:
 # and not in a fork
 docker:
     stage: docker
-    image: 
+    image:
         name: gcr.io/kaniko-project/executor:debug
         entrypoint: [""]
     script:
@@ -116,6 +117,7 @@ test:
     - make
     - ctest --output-on-failure --output-junit ./../testRes.xml # Actually execute tests embedded in testproject
     - ls ./../
+  allow_failure: true # IMPORTANT: Should remove this line once tests are fixed (can handle missing components)
   artifacts:
     when: always
     reports:
@@ -128,7 +130,7 @@ test:
 # This script only builds a base image with yum installations
 docker_base_image:
     stage: docker_base_image
-    image: 
+    image:
         name: gcr.io/kaniko-project/executor:debug
         entrypoint: [""]
     variables:
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 192ecf2..217f57a 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,11 +3,10 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
+project( StatAnalysis VERSION 0.4.0 LANGUAGES C CXX )
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-project( StatAnalysis VERSION 0.4.0 LANGUAGES C CXX )
-
 # set (CMAKE_FIND_PACKAGE_PREFER_CONFIG TRUE) # this is here so that if using ROOT from local install its picked up
 
 # Set where to pick up AtlasCMake and AtlasLCG from.
@@ -64,7 +63,7 @@ configure_file( ${CMAKE_SOURCE_DIR}/cmake/scripts/motd.in ${CMAKE_BINARY_DIR}${C
 configure_file( ${CMAKE_SOURCE_DIR}/cmake/scripts/motd.in ${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd )
 add_custom_target(StatAnalysis_motd ALL
         COMMENT "Generating StatAnalysis motd ..."
-        DEPENDS Package_xRooFit Package_TRExFitter Package_RooFitExtensions Package_RooUnfold Package_workspaceCombiner Package_xmlAnaWSBuilder Package_quickFit Package_BootstrapGenerator Package_CommonStatTools
+        DEPENDS Package_xRooFit Package_TRExFitter Package_RooFitExtensions Package_RooUnfold Package_workspaceCombiner Package_xmlAnaWSBuilder Package_quickFit Package_BootstrapGenerator Package_CommonStatTools Package_CMSCombine
         COMMAND ${CMAKE_COMMAND} -DOUTPUT_FILE=${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd.tmp2
         -DINPUT_FILE=${CMAKE_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/motd.tmp1
         -DBUILD_DIR=${CMAKE_BINARY_DIR}
diff --git a/Externals/CMSCombine/CMakeLists.txt b/Externals/CMSCombine/CMakeLists.txt
new file mode 100644
index 0000000..f007573
--- /dev/null
+++ b/Externals/CMSCombine/CMakeLists.txt
@@ -0,0 +1,70 @@
+# Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
+#
+# Package building CMSCombine for StatAnalysis releases
+#
+
+# The name of the package:
+atlas_subdir( CMSCombine )
+
+if( STATANA_CMSCOMBINE_VERSION STREQUAL "" )
+    message(STATUS "NOT BUILDING: CMSCombine")
+    return()
+endif()
+
+find_package(Eigen QUIET)
+if(NOT EIGEN_FOUND AND NOT ATLAS_BUILD_EIGEN)
+    message(STATUS "WARNING: Cannot build CMSCombine without Eigen")
+    return()
+endif()
+
+# Set token if it exists, otherwise use no token
+if(CI_JOB_TOKEN)
+    set( _token "gitlab-ci-token:${CI_JOB_TOKEN}@" )
+else()
+    set( _token "" )
+endif()
+
+set( STATANA_CMSCOMBINE_REPOSITORY "https://github.com/will-cern/HiggsAnalysis-CombinedLimit.git" CACHE STRING "Repository of cmscombine" )
+
+set( _buildDir ${CMAKE_CURRENT_BINARY_DIR}${CMAKE_FILES_DIRECTORY}/CMSCombineBuild )
+
+if(STATANA_VERBOSE)
+    set(_logging OFF)
+else()
+    set(_logging ON)
+endif()
+
+# Build lwtnn for the build area:
+ExternalProject_Add( CMSCombine
+        PREFIX ${CMAKE_BINARY_DIR}
+        INSTALL_DIR ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}
+        GIT_REPOSITORY ${STATANA_CMSCOMBINE_REPOSITORY}
+        GIT_TAG ${STATANA_CMSCOMBINE_VERSION}
+        BUILD_ALWAYS ${TRACK_CHANGES}
+        CMAKE_CACHE_ARGS
+        -DCMAKE_INSTALL_PREFIX:PATH=${_buildDir}
+        -DCMAKE_PREFIX_PATH:PATH=${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}  # ensures will discover the release's version of ROOT
+        -DMODIFY_ROOTMAP:BOOL=TRUE
+        LOG_DOWNLOAD ${_logging} LOG_CONFIGURE ${_logging} LOG_BUILD ${_logging} LOG_INSTALL ${_logging}
+        LOG_OUTPUT_ON_FAILURE 1
+        UPDATE_COMMAND "" # needed for next line to work
+        UPDATE_DISCONNECTED TRUE) # skips reconfigure+build if just rerunning.
+ExternalProject_Add_Step( CMSCombine buildinstall
+        COMMAND ${CMAKE_COMMAND} -E copy_directory ${_buildDir} <INSTALL_DIR>
+        COMMENT "Installing CMSCombine into the build area"
+        DEPENDEES install
+        )
+
+if( ATLAS_BUILD_ROOT )
+    add_dependencies ( CMSCombine ROOT )
+endif()
+
+add_dependencies( CMSCombine Eigen Boost )
+
+
+# Install CMSCombine:
+install( DIRECTORY ${_buildDir}/
+        DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL )
+
+install( FILES cmake/FindCMSCombine.cmake
+        DESTINATION ${CMAKE_INSTALL_CMAKEDIR}/modules OPTIONAL )
diff --git a/Externals/CMSCombine/cmake/FindCMSCombine.cmake b/Externals/CMSCombine/cmake/FindCMSCombine.cmake
new file mode 100644
index 0000000..fb9645f
--- /dev/null
+++ b/Externals/CMSCombine/cmake/FindCMSCombine.cmake
@@ -0,0 +1,31 @@
+# Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration
+#
+# Locate the CMSCombine external package.
+#
+# Defines:
+#  CMSCOMBINE_FOUND
+#  CMSCOMBINE_INCLUDE_DIR
+#  CMSCOMBINE_INCLUDE_DIRS
+#  CMSCOMBINE_LIBRARIES
+#  CMSCOMBINE_LIBRARY_DIRS
+#
+# The user can set CMSCOMBINE_ATROOT to guide the script.
+#
+
+# Include the helper code:
+include( AtlasInternals )
+
+# Declare the module:
+atlas_external_module( NAME CMSCombine
+        INCLUDE_SUFFIXES include INCLUDE_NAMES CMSCombine
+        LIBRARY_SUFFIXES lib
+        COMPULSORY_COMPONENTS CMSCombine )
+
+# Handle the standard find_package arguments:
+include( FindPackageHandleStandardArgs )
+find_package_handle_standard_args( CMSCombine DEFAULT_MSG CMSCOMBINE_INCLUDE_DIRS
+        CMSCOMBINE_LIBRARIES )
+mark_as_advanced( CMSCOMBINE_FOUND CMSCOMBINE_INCLUDE_DIR CMSCOMBINE_INCLUDE_DIRS
+        CMSCOMBINE_LIBRARIES CMSCOMBINE_LIBRARY_DIRS )
+
+
diff --git a/Externals/PyExternals/requirements.txt b/Externals/PyExternals/requirements.txt
index dd2c065..846c44c 100644
--- a/Externals/PyExternals/requirements.txt
+++ b/Externals/PyExternals/requirements.txt
@@ -11,4 +11,5 @@ gnureadline==8.1.2
 metakernel==0.29.0
 iminuit==2.17.0
 pytest==7.1.3
+pytest-order
 cabinetry[contrib]==0.6.0
diff --git a/Externals/ROOT/CMakeLists.txt b/Externals/ROOT/CMakeLists.txt
index 2e63d1a..7d89132 100644
--- a/Externals/ROOT/CMakeLists.txt
+++ b/Externals/ROOT/CMakeLists.txt
@@ -95,6 +95,7 @@ if( "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" OR
    list( APPEND _extraArgs -Dbuiltin_fftw3:BOOL=ON )
 endif()
 
+
 # Generate the script that will configure the build of ROOT.
 string( REPLACE ";" " " _configureArgs "${_extraArgs}" )
 configure_file( ${CMAKE_CURRENT_SOURCE_DIR}/cmake/configure.sh.in
diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 0035e21..b19f317 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -57,7 +57,6 @@ endif()
 
 option( ATLAS_BUILD_EIGEN "Build Eigen as part of the release" ${_flag} )
 
-
 # Decide whether to build DCAP.
 set( _flag FALSE )
 #if( NOT DCAP_FOUND AND _osIsValid AND
@@ -111,6 +110,7 @@ set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
 set( STATANA_WORKSPACECOMBINER_VERSION "" CACHE STRING "Version of workspaceCombiner" )
 set( STATANA_XMLANAWSBUILDER_VERSION "c84841c4" CACHE STRING "Version of xmlAnaWSBuilder" )
+set( STATANA_CMSCOMBINE_VERSION "cmake3" CACHE STRING "Version of CMSCombine" )
 
 option( TRACK_CHANGES "forces cmake to detect changes in directories of submodules and recompile if changes detected - slower to build, but required for development" ON)
 
diff --git a/README.md b/README.md
index 18a3122..87f574a 100644
--- a/README.md
+++ b/README.md
@@ -8,8 +8,8 @@ The current active branches are:
 
 | Branch | Description | Recommended |
 | ------ | ----------- | ------------|
-| 0.2    | 6.28 ROOT with any software that is in use by ATLAS, centos7 | |
-| 0.3    | 6.30 ROOT with any software that is in use by ATLAS, will be alma9 | * |
+| 0.2    | 6.28 ROOT with any software that is in use by ATLAS, centos7 | deprecated  |
+| 0.3    | 6.30 ROOT with any software that is in use by ATLAS, el9 and centos7 | * |
 | main   | Master ROOT with any compatible software, intended for developers | |
 
 ## From any machine with cvmfs, such as lxplus, using setupATLAS
@@ -18,9 +18,11 @@ StatAnalysis is available anywhere that ATLAS software it available through the
 
 ```asm
 asetup StatAnalysis,<version ref> # For a specific full release version, OR:
-asetup StatAnalysis,0.3,latest # For the latest available nightly of the 0.3 branch
+asetup StatAnalysis,0.4,latest # For the latest available nightly of the 0.3 branch
 ```
 
+Note that (only) the 0.2 branch will not work on lxplus machines that have switched to EL9 (default) as it was built for centos7. For 0.2, please either connect to `lxplus7.cern.ch`, or use `setupATLAS -c centos7`.
+
 ## Using docker images:
 
 To start an interactive session just do:
diff --git a/cmake/scripts/istartup.py b/cmake/scripts/istartup.py
index 9ca5d19..300f308 100644
--- a/cmake/scripts/istartup.py
+++ b/cmake/scripts/istartup.py
@@ -15,4 +15,3 @@ if len(argv)>1:
         else:
             print("Running ",a)
             ipython.run_line_magic("run",a)
-            
diff --git a/cmake/scripts/motd.in b/cmake/scripts/motd.in
index 61c9a03..fb510d0 100644
--- a/cmake/scripts/motd.in
+++ b/cmake/scripts/motd.in
@@ -1,6 +1,6 @@
 StatAnalysis Software Versions (Please ask sw developers to submit updates):
 
-ROOT                : @STATANA_ROOT_VERSION@
+ROOT                : @STATANA_ROOT_VERSION@ ${STATANA_ROOT_DATE}
 Python              : 3.10.6
 RooFitExtensions    : @STATANA_ROOFITEXTENSIONS_VERSION@ ${STATANA_ROOFITEXTENSIONS_DATE}
 xRooFit             : @STATANA_XROOFIT_VERSION@ ${STATANA_XROOFIT_DATE}
@@ -15,3 +15,4 @@ BootstrapGenerator  : @STATANA_BOOTSTRAPGENERATOR_VERSION@ ${STATANA_BOOTSTRAPGE
 Significance        : @STATANA_SIGNIFICANCE_VERSION@ ${STATANA_SIGNIFICANCE_DATE}
 pyhf                : @STATANA_PYHF_VERSION@
 cabinetry           : @STATANA_CABINETRY_VERSION@
+CMSCombine          : @STATANA_CMSCOMBINE_VERSION@ ${STATANA_CMSCOMBINE_DATE}
diff --git a/cmake/versioning.cmake b/cmake/versioning.cmake
index a6a7415..a8210b1 100644
--- a/cmake/versioning.cmake
+++ b/cmake/versioning.cmake
@@ -1,5 +1,5 @@
 
-foreach(foo IN ITEMS xRooFit TRExFitter RooFitExtensions RooUnfold workspaceCombiner xmlAnaWSBuilder quickFit BootstrapGenerator Significance HistFitter CommonStatTools)
+foreach(foo IN ITEMS xRooFit TRExFitter RooFitExtensions RooUnfold workspaceCombiner xmlAnaWSBuilder quickFit BootstrapGenerator Significance HistFitter CommonStatTools CMSCombine ROOT)
     string(TOUPPER STATANA_${foo}_DATE VAR)
     message("Doing ${VAR} in ${BUILD_DIR}/src/${foo}")
     execute_process(
diff --git a/docker/baseImage/Dockerfile b/docker/baseImage/Dockerfile
index bd92d88..c561a9c 100644
--- a/docker/baseImage/Dockerfile
+++ b/docker/baseImage/Dockerfile
@@ -1,11 +1,7 @@
-FROM atlas/centos7-atlasos:latest-gcc11
+FROM gitlab-registry.cern.ch/atlas-sit/docker/alma9-atlasos:latest
 
 SHELL ["/bin/bash", "-c"]
 
-# Add cmake/cpack to path
-ENV PATH $PATH:/opt/cmake/3.24.3/Linux-x86_64/bin/
-
 # Install some necessary packages
-RUN sudo yum install ccache binutils python openssl11-devel \
-    mesa-libGL-devel mesa-libGLU-devel glew-devel ftgl-devel sqlite-devel bzip2-devel -y && sudo yum clean all
-
+RUN dnf install ccache binutils python uuid-devel libuuid-devel \
+    mesa-libGL-devel mesa-libGLU-devel sqlite-devel bzip2-devel -y && sudo dnf clean all
diff --git a/package_filters.txt b/package_filters.txt
index d5162f6..128fc55 100644
--- a/package_filters.txt
+++ b/package_filters.txt
@@ -8,8 +8,8 @@
 + Externals/atlasexternals/External/dcap
 # + Externals/atlasexternals/External/Python
 # + Externals/atlasexternals/External/TBB -- ROOT can build for us
+# eigen needed for cmscombine
 + Externals/atlasexternals/External/Eigen
-
 # Do not pick up anything else from atlasexternals.
 - Externals/atlasexternals.*
 
-- 
GitLab


From 8ae250c842594220c2e1b14d9a73374c497a9b4c Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Fri, 31 May 2024 18:53:56 +0200
Subject: [PATCH 095/106] Update CMakeLists.txt - restore wsCombiner

---
 ProjectOptions/CMakeLists.txt                                 | 2 +-
 TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index b19f317..f2ac5db 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -108,7 +108,7 @@ set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-28" CACHE STRING "Version of T
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-set( STATANA_WORKSPACECOMBINER_VERSION "" CACHE STRING "Version of workspaceCombiner" )
+set( STATANA_WORKSPACECOMBINER_VERSION "2aeab14a" CACHE STRING "Version of workspaceCombiner" )
 set( STATANA_XMLANAWSBUILDER_VERSION "c84841c4" CACHE STRING "Version of xmlAnaWSBuilder" )
 set( STATANA_CMSCOMBINE_VERSION "cmake3" CACHE STRING "Version of CMSCombine" )
 
diff --git a/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh b/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
index 53f10c9..65ecc6c 100644
--- a/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
+++ b/TestProject/tests/workspaceCombiner/test-workspaceCombiner.sh
@@ -1,2 +1,2 @@
 # Printing workspace content
-# manager -w print -f test_workspace.root --wsName Test
+manager -w print -f test_workspace.root --wsName Test
-- 
GitLab


From 14149633e18bbdf30bea80cf6bb930b060eeba3e Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Mon, 3 Jun 2024 18:31:58 +0200
Subject: [PATCH 096/106] Update CMakeLists.txt - update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index f2ac5db..b2f6359 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -100,7 +100,7 @@ set( STATANA_ROOT_VERSION "v6-32-00" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "09d8c0bc" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "a386cf52" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 49bb2ec60b2880e46716bc580423badcc1bceb3f Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Tue, 4 Jun 2024 21:18:24 +0200
Subject: [PATCH 097/106] Update CMakeLists.txt - reinclude RooUnfold

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index b2f6359..d0bc901 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -106,7 +106,7 @@ set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of Boot
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-28" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
-set( STATANA_ROOUNFOLD_VERSION "" CACHE STRING "Version of RooUnfold" )
+set( STATANA_ROOUNFOLD_VERSION "3.0.2" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
 set( STATANA_WORKSPACECOMBINER_VERSION "2aeab14a" CACHE STRING "Version of workspaceCombiner" )
 set( STATANA_XMLANAWSBUILDER_VERSION "c84841c4" CACHE STRING "Version of xmlAnaWSBuilder" )
-- 
GitLab


From 6031c05bf3fa1c912903185564e0f500dd4ede18 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 13 Jun 2024 22:22:09 +0200
Subject: [PATCH 098/106] update xroofit

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index d0bc901..f9a9426 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -100,7 +100,7 @@ set( STATANA_ROOT_VERSION "v6-32-00" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-set( STATANA_XROOFIT_VERSION "a386cf52" CACHE STRING "Version of xRooFit"  )
+set( STATANA_XROOFIT_VERSION "32646f9d" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-- 
GitLab


From 927e3f9854d1e51a9a12b4a462fbdb5fbe485e1b Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 19 Jun 2024 16:08:52 +0200
Subject: [PATCH 099/106] Update CMakeLists.txt - update ROOT to 6.32.02

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index f9a9426..8b2139a 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -96,7 +96,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-32-00" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-32-02" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab


From f4ad9e31d0823d507603616c808aff42aa39ed70 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Thu, 20 Jun 2024 11:43:06 +0200
Subject: [PATCH 100/106] Added ONNX runtime v1.15.1

---
 Externals/onnxruntime/CMakeLists.txt          | 83 +++++++++++++++++++
 Externals/onnxruntime/README.md               | 13 +++
 .../onnxruntime/cmake/Findonnxruntime.cmake   | 31 +++++++
 .../onnxruntime/cmake/onnxruntime_cmake.sh.in | 13 +++
 4 files changed, 140 insertions(+)
 create mode 100644 Externals/onnxruntime/CMakeLists.txt
 create mode 100644 Externals/onnxruntime/README.md
 create mode 100644 Externals/onnxruntime/cmake/Findonnxruntime.cmake
 create mode 100755 Externals/onnxruntime/cmake/onnxruntime_cmake.sh.in

diff --git a/Externals/onnxruntime/CMakeLists.txt b/Externals/onnxruntime/CMakeLists.txt
new file mode 100644
index 0000000..263c189
--- /dev/null
+++ b/Externals/onnxruntime/CMakeLists.txt
@@ -0,0 +1,83 @@
+# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+#
+# Configuration for building ONNX Runtime as part of the offline / analysis
+# release.
+#
+
+# This package needs CMake 3.18 at least.
+cmake_minimum_required( VERSION 3.18 )
+
+# Set the name of the package:
+atlas_subdir( onnxruntime )
+
+# Silence ExternalProject warnings with CMake >=3.24.
+if( POLICY CMP0135 )
+   cmake_policy( SET CMP0135 NEW )
+endif()
+
+# Find the optional externals.
+option( ATLAS_ONNXRUNTIME_USE_CUDA
+   "Use the CUDA capabilities of ONNX Runtime, if possible" FALSE )
+mark_as_advanced( ATLAS_ONNXRUNTIME_USE_CUDA )
+if( ATLAS_ONNXRUNTIME_USE_CUDA )
+   find_package( CUDAToolkit )
+   find_package( cuDNN )
+endif()
+
+# Declare where to get ONNXRuntime from.
+if( "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "x86_64" )
+   set( ATLAS_ONNXRUNTIME_SOURCE_DEFAULT
+      "URL;http://cern.ch/atlas-software-dist-eos/externals/onnxruntime/onnxruntime-linux-x64-1.15.1.tgz;https://github.com/microsoft/onnxruntime/releases/download/v1.15.1/onnxruntime-linux-x64-1.15.1.tgz;URL_MD5;05b1aa5b682beaeb2ae3d9915b9553f6" )
+   if( CUDAToolkit_FOUND AND cuDNN_FOUND )
+      set( ATLAS_ONNXRUNTIME_SOURCE_DEFAULT
+         "URL;http://cern.ch/atlas-software-dist-eos/externals/onnxruntime/onnxruntime-linux-x64-gpu-1.15.1.tgz;https://github.com/microsoft/onnxruntime/releases/download/v1.15.1/onnxruntime-linux-x64-gpu-1.15.1.tgz;URL_MD5;8d2f5ee9f449bdecb10a45715fe74c53" )
+   endif()
+elseif( "${CMAKE_SYSTEM_PROCESSOR}" STREQUAL "aarch64" )
+   set( ATLAS_ONNXRUNTIME_SOURCE_DEFAULT
+      "URL;http://cern.ch/atlas-software-dist-eos/externals/onnxruntime/onnxruntime-linux-aarch64-1.15.1.tgz;https://github.com/microsoft/onnxruntime/releases/download/v1.15.1/onnxruntime-linux-aarch64-1.15.1.tgz;URL_MD5;ebec0b185c9bec94fde884a97b144c04" )
+endif()
+set( ATLAS_ONNXRUNTIME_SOURCE "${ATLAS_ONNXRUNTIME_SOURCE_DEFAULT}"
+   CACHE STRING "The source for ONNXRuntime" )
+mark_as_advanced( ATLAS_ONNXRUNTIME_SOURCE )
+
+# Stop here if there's no valid binary for the current platform.
+if( "${ATLAS_ONNXRUNTIME_SOURCE}" STREQUAL "" )
+   message( WARNING "No ONNXRuntime binary available for the current platform" )
+   return()
+endif()
+
+# Decide whether / how to patch the ONNXRuntime sources.
+set( ATLAS_ONNXRUNTIME_PATCH ""
+     CACHE STRING "Patch command for ONNXRuntime" )
+set( ATLAS_ONNXRUNTIME_PATCH "" CACHE STRING "Patch command for ONNXRuntime" )
+set( ATLAS_ONNXRUNTIME_FORCEDOWNLOAD_MESSAGE
+   "Forcing the re-download of ONNXRuntime (2024.03.08.)"
+   CACHE STRING "Download message to update whenever patching changes" )
+mark_as_advanced( ATLAS_ONNXRUNTIME_PATCH
+   ATLAS_ONNXRUNTIME_FORCEDOWNLOAD_MESSAGE )
+
+# Build onnxruntime.
+ExternalProject_Add( onnxruntime
+   PREFIX "${CMAKE_BINARY_DIR}"
+   SOURCE_DIR "${CMAKE_BINARY_DIR}/src/onnxruntime"
+   INSTALL_DIR "${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}"
+   ${ATLAS_ONNXRUNTIME_SOURCE}
+   ${ATLAS_ONNXRUNTIME_PATCH}
+   CONFIGURE_COMMAND cmake -E echo "No configuration for ONNXRuntime"
+   BUILD_COMMAND cmake -E rename "<SOURCE_DIR>/LICENSE"
+                                 "<SOURCE_DIR>/LICENSE.onnxruntime"
+   COMMAND cmake -E rename "<SOURCE_DIR>/ThirdPartyNotices.txt"
+                           "<SOURCE_DIR>/ThirdPartyNotices.onnxruntime"
+   COMMAND cmake -E remove "<SOURCE_DIR>/GIT_COMMIT_ID"
+                           "<SOURCE_DIR>/VERSION_NUMBER"
+                           "<SOURCE_DIR>/Privacy.md"
+                           "<SOURCE_DIR>/README.md"
+   INSTALL_COMMAND ${CMAKE_COMMAND} -E copy_directory "<SOURCE_DIR>"
+                                                      "<INSTALL_DIR>" )
+add_dependencies( Package_onnxruntime onnxruntime )
+
+# Install onnxruntime.
+install( DIRECTORY "${CMAKE_BINARY_DIR}/src/onnxruntime/"
+   DESTINATION . USE_SOURCE_PERMISSIONS OPTIONAL )
+install( FILES "cmake/Findonnxruntime.cmake"
+   DESTINATION "${CMAKE_INSTALL_CMAKEDIR}/modules" )
diff --git a/Externals/onnxruntime/README.md b/Externals/onnxruntime/README.md
new file mode 100644
index 0000000..4af7e79
--- /dev/null
+++ b/Externals/onnxruntime/README.md
@@ -0,0 +1,13 @@
+ONNX Runtime
+============
+
+This package builds the
+[ONNX Runtime](https://microsoft.github.io/onnxruntime/) library using
+the [source code from GitHub](https://github.com/microsoft/onnxruntime).
+
+Note that the build makes use of a large number of "externals", which are
+packaged together with the ONNX Runtime sources. This should not cause an
+issue during linking however, as `libonnxruntime.so` is **very** explicit
+about which symbols it would export. So the fact that internally it uses
+a different version of let's say [Eigen](http://eigen.tuxfamily.org) than
+what the rest of the ATLAS code uses, should not be a problem.
diff --git a/Externals/onnxruntime/cmake/Findonnxruntime.cmake b/Externals/onnxruntime/cmake/Findonnxruntime.cmake
new file mode 100644
index 0000000..7b7ebce
--- /dev/null
+++ b/Externals/onnxruntime/cmake/Findonnxruntime.cmake
@@ -0,0 +1,31 @@
+# Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
+#
+# Locate the onnxruntime external package.
+#
+# Defines:
+#  ONNXRUNTIME_FOUND
+#  ONNXRUNTIME_INCLUDE_DIR
+#  ONNXRUNTIME_INCLUDE_DIRS
+#  ONNXRUNTIME_LIBRARIES
+#  ONNXRUNTIME_LIBRARY_DIRS
+#
+
+# Include the helper code:
+include( AtlasInternals )
+
+# Declare the module:
+atlas_external_module( NAME onnxruntime
+   INCLUDE_SUFFIXES include include/onnxruntime
+   INCLUDE_NAMES core/common/version.h
+                 core/session/onnxruntime_c_api.h
+                 onnxruntime_c_api.h
+                 onnxruntime_cxx_api.h
+   LIBRARY_SUFFIXES lib lib32 lib64
+   COMPULSORY_COMPONENTS onnxruntime )
+
+# Handle the standard find_package arguments:
+include( FindPackageHandleStandardArgs )
+find_package_handle_standard_args( onnxruntime DEFAULT_MSG ONNXRUNTIME_INCLUDE_DIR
+   ONNXRUNTIME_LIBRARIES )
+mark_as_advanced( ONNXRUNTIME_FOUND ONNXRUNTIME_INCLUDE_DIR ONNXRUNTIME_INCLUDE_DIRS
+   ONNXRUNTIME_LIBRARIES ONNXRUNTIME_LIBRARY_DIRS )
diff --git a/Externals/onnxruntime/cmake/onnxruntime_cmake.sh.in b/Externals/onnxruntime/cmake/onnxruntime_cmake.sh.in
new file mode 100755
index 0000000..387c42f
--- /dev/null
+++ b/Externals/onnxruntime/cmake/onnxruntime_cmake.sh.in
@@ -0,0 +1,13 @@
+# Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
+#
+# Script executing CMake with extra environment settings for the build
+# of onnxruntime.
+#
+
+# Transmit errors:
+set -e
+
+# Call CMake with extra environment settings.
+"@CMAKE_COMMAND@" -E env                                           \
+   CXXFLAGS="${CXXFLAGS} -Wno-stringop-overflow -Wno-array-bounds" \
+   "@CMAKE_COMMAND@" "$@" || exit 1
-- 
GitLab


From 27998ddfb12db50ce00de5b493f2747d4777726e Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Mon, 24 Jun 2024 10:04:16 +0200
Subject: [PATCH 101/106] Updating TRExFitter to 04-30

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 8b2139a..2b21ebc 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -104,7 +104,7 @@ set( STATANA_XROOFIT_VERSION "32646f9d" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-28" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-30" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "3.0.2" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-- 
GitLab


From 088548b1d983c566d6d8b18e73da2f857a4af448 Mon Sep 17 00:00:00 2001
From: Will Buttinger <will.buttinger@cern.ch>
Date: Wed, 26 Jun 2024 12:27:37 +0200
Subject: [PATCH 102/106] Update CMakeLists.txt - bump version

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 217f57a..fd4f250 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.4.0 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.4.1 LANGUAGES C CXX )
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-- 
GitLab


From 14a4be69b08c5dd92e296580a66d95eb3a3a16d8 Mon Sep 17 00:00:00 2001
From: Jonathan Long <Jonathan.Long@cern.ch>
Date: Mon, 5 Aug 2024 16:29:32 +0200
Subject: [PATCH 103/106] Update HF to 1.3.3

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 2b21ebc..9734f4f 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -103,7 +103,7 @@ set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitEx
 set( STATANA_XROOFIT_VERSION "32646f9d" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
-set( STATANA_HISTFITTER_VERSION "v1.3.2" CACHE STRING "Version of HistFitter" )
+set( STATANA_HISTFITTER_VERSION "v1.3.3" CACHE STRING "Version of HistFitter" )
 set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-30" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "3.0.2" CACHE STRING "Version of RooUnfold" )
-- 
GitLab


From 2537f6439e004b25b7ba3fc05f41de38e8c532e0 Mon Sep 17 00:00:00 2001
From: Tomas Dado <tomas.dado@cern.ch>
Date: Mon, 12 Aug 2024 11:15:50 +0200
Subject: [PATCH 104/106] Update TRExFitter to 00-04-31

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 9734f4f..44f4248 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -104,7 +104,7 @@ set( STATANA_XROOFIT_VERSION "32646f9d" CACHE STRING "Version of xRooFit"  )
 set( STATANA_COMMONSTATTOOLS_VERSION "" CACHE STRING "Version of CommonStatTools" )
 set( STATANA_BOOTSTRAPGENERATOR_VERSION "71e6ebe2" CACHE STRING "Version of BootstrapGenerator" )
 set( STATANA_HISTFITTER_VERSION "v1.3.3" CACHE STRING "Version of HistFitter" )
-set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-30" CACHE STRING "Version of TRExFitter" )
+set( STATANA_TREXFITTER_VERSION "TRExFitter-00-04-31" CACHE STRING "Version of TRExFitter" )
 set( STATANA_SIGNIFICANCE_VERSION "d59b9a2" CACHE STRING "Version of Significance" )
 set( STATANA_ROOUNFOLD_VERSION "3.0.2" CACHE STRING "Version of RooUnfold" )
 set( STATANA_QUICKFIT_VERSION "73075ec1" CACHE STRING "Version of quickFit" )
-- 
GitLab


From 01c3b69f670035ad9ad504a22a1dfb93ebc039de Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Tue, 13 Aug 2024 10:35:04 +0200
Subject: [PATCH 105/106] Update CMakeLists.txt

---
 CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/CMakeLists.txt b/CMakeLists.txt
index fd4f250..d44c6f3 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,7 +3,7 @@
 # Set up the project.
 cmake_minimum_required( VERSION 3.6 )
 set(CMAKE_FIND_NO_INSTALL_PREFIX TRUE) # don't add installation location to find path
-project( StatAnalysis VERSION 0.4.1 LANGUAGES C CXX )
+project( StatAnalysis VERSION 0.4.2 LANGUAGES C CXX )
 
 set(CMAKE_CXX_STANDARD 17 CACHE STRING "Default value for CXX_STANDARD property of targets") # Default C++17 standard
 
-- 
GitLab


From f529c2ece3ead16cdcb03206a2c77f3a56cedc4e Mon Sep 17 00:00:00 2001
From: Zef Wolffs <zwolffs@nikhef.nl>
Date: Tue, 3 Sep 2024 19:26:21 +0200
Subject: [PATCH 106/106] Update ROOT to 6.32.04

---
 ProjectOptions/CMakeLists.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/ProjectOptions/CMakeLists.txt b/ProjectOptions/CMakeLists.txt
index 44f4248..79945ba 100644
--- a/ProjectOptions/CMakeLists.txt
+++ b/ProjectOptions/CMakeLists.txt
@@ -96,7 +96,7 @@ option( ATLAS_BUILD_BOOST "Build Boost" TRUE )
 
 # Introduce STATANA_XXX_VERSION options to control software versions
 # Also STATANA_XXX_SOURCE for controlling source where relevant (may not create these for now)
-set( STATANA_ROOT_VERSION "v6-32-02" CACHE STRING "Version of ROOT")
+set( STATANA_ROOT_VERSION "v6-32-04" CACHE STRING "Version of ROOT")
 set( STATANA_PYHF_VERSION "0.7.6" CACHE STRING "Version of pyhf" ) # this currently does nothing!
 set( STATANA_CABINETRY_VERSION "0.6.0" CACHE STRING "Version of cabinetry" ) # this currently does nothing!
 set( STATANA_ROOFITEXTENSIONS_VERSION "v1.0.4" CACHE STRING "Version of RooFitExtensions"  )
-- 
GitLab