diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 02218a087..c210d48a3 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -943,6 +943,7 @@ jobs: --unfoldingInclusive --pdfs ct18z --theoryCorr scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfas scetlib_dyturbo_LatticeNP_MSHT20mcrange_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_MSHT20mbrange_N3p0LL_N2LO_pdfvars + --quarkMassCorr MiNNLO_Zbb --filterProcs $ALPHAS_FILTER_PROCS alphas-z-reco: @@ -996,7 +997,8 @@ jobs: mkdir -p $ALPHAS_OUTDIR scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/rabbit/setupRabbit.py \ -i $ALPHAS_HIST_FILE --fitvar "$ALPHAS_FITVAR" --lumiScale $LUMI_SCALE --realData \ - -o $ALPHAS_OUTDIR --noi alphaS --npUnc LatticeEigvars --pdfUncFromCorr + -o $ALPHAS_OUTDIR --noi alphaS --npUnc LatticeEigvars --pdfUncFromCorr \ + --axlim ptll 0 44 - name: alphaS Z reco fit (${{ matrix.mode }}) run: >- @@ -1347,96 +1349,96 @@ jobs: scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/histmakers/w_z_gen_dists.py --dataPath $DATAPATH -o $WREMNANTS_OUTDIR -j $NTHREADS --maxFiles $MAX_FILES --filterProcs WplusmunuPostVFP WminusmunuPostVFP WplustaunuPostVFP WminustaunuPostVFP ZmumuPostVFP ZtautauPostVFP WplusToMuNu_horace-nlo WplusToMuNu_winhac-lo-photos ZToMuMu_horace-lo-photos - alphas-w-histmaker: - runs-on: [self-hosted, linux, x64] - needs: setenv - steps: - - env: - WREMNANTS_OUTDIR: ${{ needs.setenv.outputs.WREMNANTS_OUTDIR }} - NTHREADS: ${{ needs.setenv.outputs.NTHREADS }} - ALPHAS_MAX_FILES: 100 - run: | - echo "WREMNANTS_OUTDIR=${WREMNANTS_OUTDIR}" >> $GITHUB_ENV - echo "MAX_FILES=${MAX_FILES}" >> $GITHUB_ENV - echo "NTHREADS=${NTHREADS}" >> $GITHUB_ENV - echo "ALPHAS_OUTDIR=${WREMNANTS_OUTDIR}/alpha_s" >> $GITHUB_ENV - echo "ALPHAS_W_HIST=${WREMNANTS_OUTDIR}/alpha_s/mw_with_mu_eta_pt.hdf5" >> $GITHUB_ENV - echo "ALPHAS_MAX_FILES=${ALPHAS_MAX_FILES}" >> $GITHUB_ENV - echo "ALPHAS_FILTER_PROCS=SingleMuon_2016PostVFP Zmumu_2016PostVFP Ztautau_2016PostVFP Wplusmunu_2016PostVFP Wminusmunu_2016PostVFP Wplustaunu_2016PostVFP Wminustaunu_2016PostVFP DYJetsToMuMuMass10to50_2016PostVFP TTLeptonic_2016PostVFP WWTo2L2Nu_2016PostVFP QCDmuEnrichPt15_2016PostVFP GGToMuMuMass5to50_2016PostVFP GGToLL_2016PostVFP QGToDYQTo2L_2016PostVFP QGToWQToLNu_2016PostVFP" >> $GITHUB_ENV - - - uses: actions/checkout@v5 - with: - submodules: 'recursive' - lfs: 'true' - - - name: alphaS histmaker (W) - run: >- - scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/histmakers/mw_with_mu_eta_pt.py - --dataPath $DATAPATH - -o $ALPHAS_OUTDIR - -j $NTHREADS - --maxFiles $ALPHAS_MAX_FILES - --unfolding - --poiAsNoi - --forceDefaultName - --pdfs ct18z - --theoryCorr scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfas scetlib_dyturbo_LatticeNP_MSHT20mcrange_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_MSHT20mbrange_N3p0LL_N2LO_pdfvars - --filterProcs $ALPHAS_FILTER_PROCS - - alphas-wz-reco: - runs-on: [self-hosted, linux, x64] - needs: [setenv, alphas-z-histmaker, alphas-w-histmaker] - steps: - - env: - WREMNANTS_OUTDIR: ${{ needs.setenv.outputs.WREMNANTS_OUTDIR }} - WEB_DIR: ${{ needs.setenv.outputs.WEB_DIR }} - PLOT_DIR: ${{ needs.setenv.outputs.PLOT_DIR }} - LUMI_SCALE: ${{ needs.setenv.outputs.LUMI_SCALE }} - run: | - echo "WREMNANTS_OUTDIR=${WREMNANTS_OUTDIR}" >> $GITHUB_ENV - echo "WEB_DIR=${WEB_DIR}" >> $GITHUB_ENV - echo "PLOT_DIR=${PLOT_DIR}" >> $GITHUB_ENV - echo "LUMI_SCALE=${LUMI_SCALE}" >> $GITHUB_ENV - echo "ALPHAS_OUTDIR=${WREMNANTS_OUTDIR}/alpha_s" >> $GITHUB_ENV - echo "ALPHAS_Z_HIST=${WREMNANTS_OUTDIR}/alpha_s/mz_dilepton.hdf5" >> $GITHUB_ENV - echo "ALPHAS_W_HIST=${WREMNANTS_OUTDIR}/alpha_s/mw_with_mu_eta_pt.hdf5" >> $GITHUB_ENV - echo "ALPHAS_WZ_RECO_DIR=${WREMNANTS_OUTDIR}/alpha_s/Combination_ZMassDileptonWMass_reco" >> $GITHUB_ENV - echo "ALPHAS_WZ_RECO_COMBINE=${WREMNANTS_OUTDIR}/alpha_s/Combination_ZMassDileptonWMass_reco/Combination.hdf5" >> $GITHUB_ENV - echo "ALPHAS_PLOT_DIR=${WEB_DIR}/${PLOT_DIR}/alpha_s" >> $GITHUB_ENV - - - uses: actions/checkout@v5 - with: - submodules: 'recursive' - lfs: 'true' - - - name: alphaS WZ reco setup - run: | - set -euo pipefail - mkdir -p $ALPHAS_OUTDIR - scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/rabbit/setupRabbit.py \ - -i $ALPHAS_Z_HIST $ALPHAS_W_HIST \ - --fitvar "ptll-yll-cosThetaStarll_quantile-phiStarll_quantile" "eta-pt-charge" \ - --lumiScale $LUMI_SCALE $LUMI_SCALE \ - -o $ALPHAS_OUTDIR --noi alphaS wmass --postfix reco \ - --npUnc LatticeEigvars --pdfUncFromCorr - - - name: alphaS WZ reco fit - run: >- - scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run.sh rabbit_fit.py - "$ALPHAS_WZ_RECO_COMBINE" -t -1 --computeVariations -m Project ch0 ptll yll -m Select ch1 - --computeHistErrors --doImpacts -o "$ALPHAS_WZ_RECO_DIR/" --globalImpacts - - - name: alphaS WZ reco links - run: | - ln -sfn "$ALPHAS_WZ_RECO_DIR" "$ALPHAS_OUTDIR/alpha_s_wz_reco" - ln -sfn "$ALPHAS_WZ_RECO_DIR/fitresults.hdf5" "$ALPHAS_OUTDIR/alpha_s_wz_reco_fitresult.hdf5" - - - name: alphaS wz reco impacts - run: >- - scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run.sh rabbit_plot_pulls_and_impacts.py - $ALPHAS_OUTDIR/alpha_s_wz_reco_fitresult.hdf5 --title CMS --subtitle Preliminary - --showNumbers --pullrange '2.1' --config wremnants/utilities/styles/styles.py --oneSidedImpacts --grouping max - -o $ALPHAS_PLOT_DIR --otherExtensions pdf png -n 50 --postfix reco --scaleImpacts 100 + # alphas-w-histmaker: + # runs-on: [self-hosted, linux, x64] + # needs: setenv + # steps: + # - env: + # WREMNANTS_OUTDIR: ${{ needs.setenv.outputs.WREMNANTS_OUTDIR }} + # NTHREADS: ${{ needs.setenv.outputs.NTHREADS }} + # ALPHAS_MAX_FILES: 100 + # run: | + # echo "WREMNANTS_OUTDIR=${WREMNANTS_OUTDIR}" >> $GITHUB_ENV + # echo "MAX_FILES=${MAX_FILES}" >> $GITHUB_ENV + # echo "NTHREADS=${NTHREADS}" >> $GITHUB_ENV + # echo "ALPHAS_OUTDIR=${WREMNANTS_OUTDIR}/alpha_s" >> $GITHUB_ENV + # echo "ALPHAS_W_HIST=${WREMNANTS_OUTDIR}/alpha_s/mw_with_mu_eta_pt.hdf5" >> $GITHUB_ENV + # echo "ALPHAS_MAX_FILES=${ALPHAS_MAX_FILES}" >> $GITHUB_ENV + # echo "ALPHAS_FILTER_PROCS=SingleMuon_2016PostVFP Zmumu_2016PostVFP Ztautau_2016PostVFP Wplusmunu_2016PostVFP Wminusmunu_2016PostVFP Wplustaunu_2016PostVFP Wminustaunu_2016PostVFP DYJetsToMuMuMass10to50_2016PostVFP TTLeptonic_2016PostVFP WWTo2L2Nu_2016PostVFP QCDmuEnrichPt15_2016PostVFP GGToMuMuMass5to50_2016PostVFP GGToLL_2016PostVFP QGToDYQTo2L_2016PostVFP QGToWQToLNu_2016PostVFP" >> $GITHUB_ENV + + # - uses: actions/checkout@v5 + # with: + # submodules: 'recursive' + # lfs: 'true' + + # - name: alphaS histmaker (W) + # run: >- + # scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/histmakers/mw_with_mu_eta_pt.py + # --dataPath $DATAPATH + # -o $ALPHAS_OUTDIR + # -j $NTHREADS + # --maxFiles $ALPHAS_MAX_FILES + # --unfolding + # --poiAsNoi + # --forceDefaultName + # --pdfs ct18z + # --theoryCorr scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_CT18Z_N3p0LL_N2LO_pdfas scetlib_dyturbo_LatticeNP_MSHT20mcrange_N3p0LL_N2LO_pdfvars scetlib_dyturbo_LatticeNP_MSHT20mbrange_N3p0LL_N2LO_pdfvars + # --filterProcs $ALPHAS_FILTER_PROCS + + # alphas-wz-reco: + # runs-on: [self-hosted, linux, x64] + # needs: [setenv, alphas-z-histmaker, alphas-w-histmaker] + # steps: + # - env: + # WREMNANTS_OUTDIR: ${{ needs.setenv.outputs.WREMNANTS_OUTDIR }} + # WEB_DIR: ${{ needs.setenv.outputs.WEB_DIR }} + # PLOT_DIR: ${{ needs.setenv.outputs.PLOT_DIR }} + # LUMI_SCALE: ${{ needs.setenv.outputs.LUMI_SCALE }} + # run: | + # echo "WREMNANTS_OUTDIR=${WREMNANTS_OUTDIR}" >> $GITHUB_ENV + # echo "WEB_DIR=${WEB_DIR}" >> $GITHUB_ENV + # echo "PLOT_DIR=${PLOT_DIR}" >> $GITHUB_ENV + # echo "LUMI_SCALE=${LUMI_SCALE}" >> $GITHUB_ENV + # echo "ALPHAS_OUTDIR=${WREMNANTS_OUTDIR}/alpha_s" >> $GITHUB_ENV + # echo "ALPHAS_Z_HIST=${WREMNANTS_OUTDIR}/alpha_s/mz_dilepton.hdf5" >> $GITHUB_ENV + # echo "ALPHAS_W_HIST=${WREMNANTS_OUTDIR}/alpha_s/mw_with_mu_eta_pt.hdf5" >> $GITHUB_ENV + # echo "ALPHAS_WZ_RECO_DIR=${WREMNANTS_OUTDIR}/alpha_s/Combination_ZMassDileptonWMass_reco" >> $GITHUB_ENV + # echo "ALPHAS_WZ_RECO_COMBINE=${WREMNANTS_OUTDIR}/alpha_s/Combination_ZMassDileptonWMass_reco/Combination.hdf5" >> $GITHUB_ENV + # echo "ALPHAS_PLOT_DIR=${WEB_DIR}/${PLOT_DIR}/alpha_s" >> $GITHUB_ENV + + # - uses: actions/checkout@v5 + # with: + # submodules: 'recursive' + # lfs: 'true' + + # - name: alphaS WZ reco setup + # run: | + # set -euo pipefail + # mkdir -p $ALPHAS_OUTDIR + # scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run_python.sh scripts/rabbit/setupRabbit.py \ + # -i $ALPHAS_Z_HIST $ALPHAS_W_HIST \ + # --fitvar "ptll-yll-cosThetaStarll_quantile-phiStarll_quantile" "eta-pt-charge" \ + # --lumiScale $LUMI_SCALE $LUMI_SCALE \ + # -o $ALPHAS_OUTDIR --noi alphaS wmass --postfix reco \ + # --npUnc LatticeEigvars --pdfUncFromCorr + + # - name: alphaS WZ reco fit + # run: >- + # scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run.sh rabbit_fit.py + # "$ALPHAS_WZ_RECO_COMBINE" -t -1 --computeVariations -m Project ch0 ptll yll -m Select ch1 + # --computeHistErrors --doImpacts -o "$ALPHAS_WZ_RECO_DIR/" --globalImpacts + + # - name: alphaS WZ reco links + # run: | + # ln -sfn "$ALPHAS_WZ_RECO_DIR" "$ALPHAS_OUTDIR/alpha_s_wz_reco" + # ln -sfn "$ALPHAS_WZ_RECO_DIR/fitresults.hdf5" "$ALPHAS_OUTDIR/alpha_s_wz_reco_fitresult.hdf5" + + # - name: alphaS wz reco impacts + # run: >- + # scripts/ci/run_with_singularity.sh scripts/ci/setup_and_run.sh rabbit_plot_pulls_and_impacts.py + # $ALPHAS_OUTDIR/alpha_s_wz_reco_fitresult.hdf5 --title CMS --subtitle Preliminary + # --showNumbers --pullrange '2.1' --config wremnants/utilities/styles/styles.py --oneSidedImpacts --grouping max + # -o $ALPHAS_PLOT_DIR --otherExtensions pdf png -n 50 --postfix reco --scaleImpacts 100 alphas-z-unfolding: runs-on: [self-hosted, linux, x64] @@ -1611,7 +1613,7 @@ jobs: copy-clean: runs-on: [self-hosted, linux, x64] - needs: [setenv, w-analysis, w-fit, w-plotting, w-bsm, lowpu-w, lowpu-z, lowpu-combined-unfolding, wlike, wlike-plotting, dilepton-mll, alphas-z-histmaker, alphas-z-reco, dilepton, dilepton-unfolding, dilepton-plotting, gen, alphas-w-histmaker, alphas-wz-reco, alphas-z-unfolding, alphas-z-gen-fit, combined-fit] + needs: [setenv, w-analysis, w-fit, w-plotting, w-bsm, lowpu-w, lowpu-z, lowpu-combined-unfolding, wlike, wlike-plotting, dilepton-mll, alphas-z-histmaker, alphas-z-reco, dilepton, dilepton-unfolding, dilepton-plotting, gen, alphas-z-unfolding, alphas-z-gen-fit, combined-fit] if: always() steps: - env: diff --git a/wremnants-data b/wremnants-data index 0b7d3d490..ce16ff6db 160000 --- a/wremnants-data +++ b/wremnants-data @@ -1 +1 @@ -Subproject commit 0b7d3d490d17b955e6c8bdbdac4224bc5087bb67 +Subproject commit ce16ff6db3d916ca210e8186a57c1bcd99a0bea0 diff --git a/wremnants/postprocessing/rabbit_theory_helper.py b/wremnants/postprocessing/rabbit_theory_helper.py index 1133c5674..bbb579b81 100644 --- a/wremnants/postprocessing/rabbit_theory_helper.py +++ b/wremnants/postprocessing/rabbit_theory_helper.py @@ -547,7 +547,7 @@ def add_stat_unc(self): self.datagroups.addSystematic( histname=self.corr_hist_name, processes=processes, - groups=["theory"], + groups=["fo_stat", "pTModeling", "theory"], systAxes=[self.syst_ax], passToFakes=self.propagate_to_fakes, preOp=lambda h: h[ @@ -823,7 +823,7 @@ def add_correlated_np_uncertainties(self): if self.np_model in ["LatticeEigvars", "LatticeNoConstraints"]: np_map = { "lambda2": ["0.0", "0.5"], - "delta_lambda2": ["0.105", "0.145"], + "delta_lambda2": ["-0.02", "0.02"], "lambda4": ["0.01", "0.16"], } elif "Lambda" in self.np_model: @@ -877,7 +877,7 @@ def add_uncorrelated_np_uncertainties(self): if self.np_model in ["LatticeEigvars", "LatticeNoConstraints"]: np_map = { "lambda2": ["0.0", "0.5"], - "delta_lambda2": ["0.105", "0.145"], + "delta_lambda2": ["-0.02", "0.02"], "lambda4": ["0.01", "0.16"], } elif "Lambda" in self.np_model: diff --git a/wremnants/postprocessing/theory_variation_labels.py b/wremnants/postprocessing/theory_variation_labels.py index dc1c998ec..33353753f 100644 --- a/wremnants/postprocessing/theory_variation_labels.py +++ b/wremnants/postprocessing/theory_variation_labels.py @@ -12,8 +12,8 @@ ["lambda20.5", "lambda20.0", "chargeVgenNP0scetlibNPLambda2"], ["lambda40.16", "lambda40.01", "chargeVgenNP0scetlibNPLambda4"], [ - "delta_lambda20.105", - "delta_lambda20.145", + "delta_lambda20.02", + "delta_lambda2-0.02", "chargeVgenNP0scetlibNPDelta_Lambda2", ], ] diff --git a/wremnants/utilities/styles/styles.py b/wremnants/utilities/styles/styles.py index 1762481ec..3a06d0781 100644 --- a/wremnants/utilities/styles/styles.py +++ b/wremnants/utilities/styles/styles.py @@ -444,6 +444,7 @@ def translate_html_to_latex(n): "resumScale", "resumTransitionFOScale", "bcQuarkMass", + "fo_stat", "angularCoeffs", "muonCalibration", "muon_eff_stat", @@ -587,6 +588,7 @@ def translate_html_to_latex(n): "QCDscaleZPtChargeHelicityMiNNLO": "μR μF scale (Z)", "QCDscaleWPtChargeHelicityMiNNLO": "μR μF scale (W)", "resumTransitionFOScale": "Matching + FO scale", + "fo_stat": "FO stat.", "binByBinStat": "Simulation stat.", "binByBinStatW": "Bin-by-bin stat. (W)", "binByBinStatZ": "Bin-by-bin stat. (Z)",