ColliderBit: CBS standalone, analysis naming migration, Run-2 analysis wave, Rivet 4.1/Contur 3.0#608
ColliderBit: CBS standalone, analysis naming migration, Run-2 analysis wave, Rivet 4.1/Contur 3.0#608Pengxuan-Zhu-Phys wants to merge 601 commits into
Conversation
- Add Histogram1D/2D classes (Histogram.hpp) with weighted fill, scale, combine, and JSON serialisation; mirror Cutflow design pattern - Wire histogram macros, batch accumulation, and CBS output into solo pipeline - Make use_FullLikes a runtime YAML option; remove mandatory ATLAS_FullLikes dependency - Add CMS-B2G-18-003 low-mass 3M signal regions (300–1300 GeV per-bin SRs) - Add m_HC and m_VLB kinematic histograms to ATLAS-EXOT-2019-04 - Fix FindEigen3 fallback path and pass CC to YODA configure
# Conflicts: # CMakeLists.txt # ColliderBit/examples/ColliderBit_SLHA_file_model.yaml # ColliderBit/examples/ColliderBit_SLHA_scan_model.yaml # ColliderBit/include/gambit/ColliderBit/ColliderBit_MC_rollcall.hpp # ColliderBit/include/gambit/ColliderBit/Utils.hpp # ColliderBit/include/gambit/ColliderBit/analyses/AnalysisData.hpp # ColliderBit/src/ColliderBit_eventloop.cpp # ColliderBit/src/analyses/Analysis_ATLAS_13TeV_2BoostedBosons_139invfb.cpp # ColliderBit/src/analyses/Analysis_ATLAS_13TeV_3LEP_139invfb.cpp # ColliderBit/src/analyses/Analysis_ATLAS_SUSY_2018_08.cpp # ColliderBit/src/analyses/Analysis_ATLAS_SUSY_2018_21.cpp # ColliderBit/src/analyses/Analysis_CMS_8TeV_MultiLEP_20invfb.cpp # ColliderBit/src/analyses/Analysis_CMS_SUS_16_048.cpp # ColliderBit/src/analyses/Analysis_CMS_SUS_19_012.cpp # ScannerBit/include/gambit/ScannerBit/plugin_interface.hpp # cmake/MacOSX.cmake # cmake/backends.cmake # cmake/contrib.cmake # cmake/externals.cmake # contrib/preload/gambit_preload.cpp
Rename all analysis .info files from final-state style (e.g. Analysis_ATLAS_13TeV_0LEP_139invfb) to paper/report number style (e.g. Analysis_ATLAS_SUSY_2018_22), matching the existing .cpp file naming convention. - Renamed 46 existing .info files to new-style names - Created 18 minimal .info files for analyses that had no .info - Added OldName field to all 61 new-style .info files - 7TeV/8TeV analyses retain old-style names (cpp unchanged) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The merge with gambit/master auto-merged a wrapper block into AnalysisData.hpp, but begin_ignore_warnings_eigen.hpp was deliberately removed in our branch (commit 2dab351). Revert to bare Eigen/Core include to match our branch intent. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merging gambit/master took --theirs for contrib.cmake, which downgraded YODA from 2.1.0 (our branch) to 1.9.7 (gambit/master). Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
The official YODA-2.1.0.tar.gz on hepforge was repackaged; update the expected MD5 to match the current download. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Merge took --ours for Utils.hpp (by-value declaration) while Utils.cpp had been updated to const reference by gambit/master, causing an ambiguous overload error. Align both to const reference. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
getxsec.cpp gained InitialTotalCrossSection_YAMLparam and InitialTotalCrossSection_YAMLSLHA from gambit/master auto-merge, but --ours on ColliderBit_MC_rollcall.hpp left them unregistered. Add the missing CAPABILITY entries alongside the existing ones. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ATLAS_EXOT_2016_014: fix abs() paren so the |eta|<2.0 cut works - ATLAS_SUSY_2019_22: init samesign and fix >3 -> >=3 (was UB) - Py8EventConversions: use non-deprecated FastJet JetDefinition arg order - Migrate YODA Histo1D to in-house Histogram class (2016_013, 2021_35); drop unused/dead YODA code (2018_07, 2019_07, 2016_017) - cmake: split LDFLAGS into list elements to kill duplicate-library warnings - standalone_facilitator.py: fix invalid escape; mark plot script executable
- extend Histogram1D with optional per-bin obs/bkg/bkg_err data - add macros to define and commit histogram bins as signal regions - preserve SR-histogram metadata through CBS JSON output and batch merge - combine SR MC statistical errors in quadrature for weighted bins - add data/background/signal ratio plotting for SR histograms - convert ATLAS_EXOT_2019_04 m_VLB histogram to placeholder SR-histogram
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e39afa6ce1
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| // Loop over all analyses and compute efficiency x acceptance for each | ||
| void calc_LHC_efficiencies_per_analysis(map_str_dbl& result) | ||
| { | ||
| using namespace Pipes::calc_LHC_efficiencies_per_SR; |
There was a problem hiding this comment.
Use the per-analysis Pipes namespace
When only LHC_efficiencies_per_analysis is requested, this function imports Pipes::calc_LHC_efficiencies_per_SR, so Dep::AllAnalysisNumbers and Dep::LHCEventLoopInfo are read through the other capability's pipe. Those dependency pointers are not guaranteed to be populated for the per-analysis capability, so requesting the new per-analysis efficiency output can dereference the wrong/null pipe or use stale state; switch this to Pipes::calc_LHC_efficiencies_per_analysis.
Useful? React with 👍 / 👎.
| summary_line << "LHC efficiencies per SR: "; | ||
|
|
||
| // Get the loop info for the number of events | ||
| static map_str_dbl loop_info = *Dep::LHCEventLoopInfo; |
There was a problem hiding this comment.
Refresh event-loop counts for each point
Because loop_info is static, the first scan point's LHCEventLoopInfo is reused for all later points. In runs where event counts vary by point, such as UMVUE or mean_relative_nEvents, the efficiency denominators remain from the first point, so LHC_efficiencies_per_SR and the per-analysis helper report wrong acceptance×efficiency values; copy *Dep::LHCEventLoopInfo on each call instead.
Useful? React with 👍 / 👎.
| analyses: | ||
| - Baselines | ||
| # | ||
| - ATLAS_13TeV_0LEPStop_139invfb # [in skip_analyses] New! (Martin) |
There was a problem hiding this comment.
Update migrated analysis names in the new scan
This newly added scan config still requests old analysis IDs, while AnalysisContainer now registers the migrated names (for example this old ATLAS_13TeV_0LEPStop_139invfb name only remains as metadata/commentary). Running yaml_files/PX_SUSYRun2_stop.yaml will fail during analysis lookup with an unknown ColliderBit analysis before the scan starts; update the analyses and skip_analyses lists to the migrated IDs.
Useful? React with 👍 / 👎.
- replace std::system batch subprocess launch with fork/exec/waitpid - report decoded child exit status or signal and output JSON state - parse regular and VariableR jet collections through one shared helper - route VariableR collections through normal jet_collections settings - skip detector smearing/btag cleanup for configured VariableR jet collections - remove legacy VRJet_collections/vrjets handling
Headline numbers: 328 files changed, +313k/−14.9k lines — of which ~266k added lines
are data assets (two ATLAS pyhf background JSONs, MET-significance resolution tables,
a vendored nlohmann::json header); the code change is ~+47.6k/−14.9k.
Registered analyses grow from 100 to 135 names.
Breaking changes
Analysis names: 72 analyses renamed; the legacy names are gone from
AnalysisContainer.cpp, so existing user YAML files must be updated. The shipped
yaml_files/*.yaml are already migrated. Mapping table: doc/analysis_rename_map.md
(also in each .info as OldName:).
Rivet/Contur: support for Rivet 3.1.5 / Contur 2.1.1 is replaced by
Rivet 4.1.0 / Contur 3.0.0 (frontends, BOSS configs and patches renamed/regenerated;
CI now installs pathos joblib for Contur 3).
HEPUtils (contrib/heputils): Event gains named variable-R jet collections
(vrjets(key), add_vrjet, …) alongside the existing named jet collections; analyses
and event converters use them when the run YAML declares VRJet_collections.
FastJet: ColliderBit now builds against FastJet 3.4.2 + fjcontrib 1.049 under
contrib/ (with an object library for Nsubjettiness); deprecated FastJet API usages
in Py8EventConversions were fixed.
No physics behaviour of existing, unrenamed analyses is intentionally changed except
where listed under "Bug fixes".
1. ColliderBit Solo (CBS)
CBS_Documentation.md
2. Analysis naming migration
rename-map.md
3. New and rewritten analyses
Brand-new implementations (no predecessor in master):
Major rewrites carried over from legacy names (selection):
ATLAS_SUSY_2018_05(+_RJR) (2L+jets EW, object-based MET significance, FullLikes JSON),
ATLAS_SUSY_2018_16 (soft 2L, FullLikes), ATLAS_SUSY_2018_30 (3b, ONNX NN),
ATLAS_SUSY_2019_02 (2L0J EW, BDT), ATLAS_SUSY_2018_41, ATLAS_SUSY_2019_09,
ATLAS_SUSY_2019_18, ATLAS_SUSY_2019_22, ATLAS_SUSY_2020_16, ATLAS_CONF_2019_008
(chargino, FullLikes JSON), CMS_SUS_16_039, CMS_SUS_18_004, CMS_SUS_19_010,
CMS_SUS_20_001, CMS_SUS_20_004, CMS_SUS_21_002(+_OLD), CMS_SUS_21_009.
Many analyses register multiple variants (inclusive/binned/per-channel), hence
135 registered names from 91 source files.
4. Backends, build system, support code
(
Backends/include/gambit/Backends/backend_types/Rivet_4_1_0/, patches, BOSS config);Pythia 8.312 wrapper/patch refresh;
ATLAS_FullLikesfrontend updates;new
config/gambit_backend_interfaces.yaml.contrib/with rpath wiring(
cmake/contrib.cmake); Nsubjettiness object library.cmake/utilities.cmake/executables.cmake/standalones.cmake: standalone functorgeneration (
standalone_facilitator.py), LDFLAGS normalisation to killduplicate-library warnings, CBS target registration.
Utils/json.hpp: vendored single-header nlohmann/json (MIT), used by CBS output andbatch merge.
Utils/util_functions: small helpers.MSSMEW Run-2 scan configs (
yaml_files/SUSYRun2_MSSMEW*.yaml)..gitignore: CBS artefacts, contrib fastjet/fjcontrib, BOSS castxml, generatedfunctors_for_CBS.cpp.FastJet_Code_Changes.md
6. Variable-R Jet implementation.
VariableR_Jet_Changes.md
7. Histogram support based on SignalRegion class.
Histogram_SR_Design.md
Thank you for such massive merge PR request.