Skip to content

Add NLL backend comparison tests #1

Add NLL backend comparison tests

Add NLL backend comparison tests #1

name: CI with CVMFS for AD tests
on:
pull_request_target:
types: [ labeled ]
branches: [ main ]
jobs:
test_workflow:
runs-on: ubuntu-latest
strategy:
matrix:
IMAGE: ["cmscloud/al8-cms"]
CMSSW_VERSION: ["CMSSW_15_1_ROOT634_X_2025-04-25-2300"]
SCRAM_ARCH: ["el8_amd64_gcc12"]
ROOT: ["ROOT v6.34/09"]
include:
- IMAGE: "cmscloud/al8-cms"
CMSSW_VERSION: "CMSSW_15_1_ROOT6_X_2025-04-27-2300"
SCRAM_ARCH: "el8_amd64_gcc12"
ROOT: "ROOT v6.35/01"
env:
docker_opt_rw: -v /cvmfs:/cvmfs:shared -v ${{ github.workspace }}:/work/CombinedLimit --mount source=cmsusr,destination=/home/cmsusr -w /home/cmsusr -e CMSSW_VERSION=${{ matrix.CMSSW_VERSION }} -e SCRAM_ARCH=${{ matrix.SCRAM_ARCH }}
docker_opt_ro: -v /cvmfs:/cvmfs:shared -v cmsusr:/home/cmsusr/cmssw/:ro -w /home/cmsusr/ -e CMSSW_VERSION=${{ matrix.CMSSW_VERSION }} -e SCRAM_ARCH=${{ matrix.SCRAM_ARCH }}
name: Test with ${{ matrix.CMSSW_VERSION }} and ${{ matrix.ROOT }}
steps:
- uses: actions/checkout@v4
- uses: cvmfs-contrib/github-action-cvmfs@v4
with:
cvmfs_repositories: 'cms.cern.ch'
- uses: rhaschke/docker-run-action@v5
name: Build Combine
if: github.event.label.name == 'testAD'
with:
image: ${{ matrix.IMAGE }}
shell: bash
options: ${{env.docker_opt_rw}}
run: |
cd /home/cmsusr/
source /cvmfs/cms.cern.ch/cmsset_default.sh
scram project ${CMSSW_VERSION}
cd ${CMSSW_VERSION}/src
cmsenv
mkdir -p HiggsAnalysis
cp -r /work/CombinedLimit HiggsAnalysis/
scramv1 b -j$(nproc)
echo ${PATH}
root --version
combine --help
- uses: rhaschke/docker-run-action@v5
name: Counting datacard
if: github.event.label.name == 'testAD'
with:
image: ${{ matrix.IMAGE }}
shell: bash
options: ${{env.docker_opt_ro}}
run: |
cp -r cmssw/${CMSSW_VERSION} .
cd /home/cmsusr/${CMSSW_VERSION}/src
source /cvmfs/cms.cern.ch/cmsset_default.sh
cmsenv
text2workspace.py HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.txt -m 125 -P HiggsAnalysis.CombinedLimit.PhysicsModel:floatingXSHiggs --PO modes=ggH,qqH
combine -M MultiDimFit HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.root --setParameterRanges r=-1,1 --nllbackend codegen
- uses: rhaschke/docker-run-action@v5
name: RooHistPdf
if: github.event.label.name == 'testAD'
with:
image: ${{ matrix.IMAGE }}
shell: bash
options: ${{env.docker_opt_ro}}
run: |
cp -r cmssw/${CMSSW_VERSION} .
cd /home/cmsusr/${CMSSW_VERSION}/src
source /cvmfs/cms.cern.ch/cmsset_default.sh
cmsenv
ulimit -s unlimited
text2workspace.py HiggsAnalysis/CombinedLimit/data/ci/datacard_RooHistPdf.txt.gz -o ws_RooHistPdf.root
combine -M MultiDimFit ws_RooHistPdf.root --algo singles --setParameterRanges r=-1,2. --nllbackend codegen
- uses: rhaschke/docker-run-action@v5
name: Counting datacard screen output fit results comparison
if: github.event.label.name == 'testAD'
with:
image: ${{ matrix.IMAGE }}
shell: bash
options: ${{env.docker_opt_ro}}
run: |
cp -r cmssw/${CMSSW_VERSION} .
cd /home/cmsusr/${CMSSW_VERSION}/src
source /cvmfs/cms.cern.ch/cmsset_default.sh
cmsenv
text2workspace.py HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.txt -m 125 -P HiggsAnalysis.CombinedLimit.PhysicsModel:floatingXSHiggs --PO modes=ggH,qqH
combine -M MultiDimFit HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.root --setParameterRanges r=-1,1 -n .without_nllbackend > without_nllbackend.out 2>&1
combine -M MultiDimFit HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.root --setParameterRanges r=-1,1 --nllbackend codegen -n .with_nllbackend > with_nllbackend.out 2>&1
- uses: rhaschke/docker-run-action@v5
name: Counting datacard ROOT fit results comparison
if: github.event.label.name == 'testAD'
with:
image: ${{ matrix.IMAGE }}
shell: bash
options: ${{env.docker_opt_ro}}
run: |
cp -r cmssw/${CMSSW_VERSION} .
cd /home/cmsusr/${CMSSW_VERSION}/src
source /cvmfs/cms.cern.ch/cmsset_default.sh
cmsenv
text2workspace.py HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.txt -m 125 -P HiggsAnalysis.CombinedLimit.PhysicsModel:floatingXSHiggs --PO modes=ggH,qqH
combine -M MultiDimFit HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.root --setParameterRanges r=-1,1 -n .without_nllbackend
combine -M MultiDimFit HiggsAnalysis/CombinedLimit/data/tutorials/multiDim/toy-hgg-125.root --setParameterRanges r=-1,1 --nllbackend codegen -n .with_nllbackend
python3 HiggsAnalysis/CombinedLimit/test/HiggsCombine_MultiDimFit_compare.py -m root -f1 higgsCombine.with_nllbackend.MultiDimFit.mH120.root -f2 higgsCombine.without_nllbackend.MultiDimFit.mH120.root -b1 r_ggH -b2 r_qqH