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 642 commits into
Conversation
… exclusion)" This reverts commit cd67e07.
Add public cbs and cbs-llvm presets that configure a Release CBS build in GAMBIT's default build/ directory. Optional CBS features (MPI, ROOT, RestFrames, ONNX, Rivet/Contur) are requested by default and skipped when their prerequisites are missing. Ordinary cmake .. is unchanged, including FastJet 3.4.2 for non-preset ColliderBit builds.
…f built in the wrong order
- Reimplements a fix in the SUSY Run 2 branch, along with some other small improvements. - many analyses have lots of unused variable warnings, so these should be addressed.
ChrisJChang
left a comment
There was a problem hiding this comment.
I am now able to build both gambit and CBS. My next step will be going more carefully through all the different lines of code. I left one requested change comment. This is not something too serious, just resolving undefined variable warnings in ColliderBit analyses.
Scan ColliderBit/src/analyses/*.info at runtime instead of a hardcoded catalogue. Copy YAML fields into strings immediately; yaml-cpp 0.6.2 Node assignment merges documents, so sorting stored nodes mixed metadata across analyses. CBS -h/-l skip RestFrames' load-time banner and the uninitialised logger dump. RestFrames is patched at configure/link time to honour RESTFRAMES_QUIET.
Emit Mach-O linker options as single -Wl, tokens in MacOSX.cmake so AppleClang and LLVM clang both accept them and rivet-build cannot split them. Drop CBS_RIVET_USE_LLVM_LINKER_DRIVER. Build FastJet 3.5.1, fjcontrib 1.101, and Contur 3.0.0 for ordinary GAMBIT cmake .. as well as CBS, matching the Contur_3_0_0 frontend. Strip OpenMP from YODA's private libtool flags on AppleClang.
Drop the unused fjcore include branches from ATLAS EXOT/SUSY analyses that already require FastJet tools. Do not compile the fjcore object library when ColliderBit builds full FastJet.
METSignificance includes HEPUtils::Jet and must not be declared when ColliderBit is off. Drop the leftover FastJet 3.4.2 include from the Rivet 4.1.0 BOSS config so CastXML matches the 3.5.1 contrib build.
|
Your latest changes have made CBS now require boost filesystem. This is not a problem, we do this for GUM to. We will just need to remember or document this somewhere so we can mention it in the paper for what the requirements are for CBS. |
Thanks, the standalone 'boost.system' is removed in Boost 1.9. So I remove it. |
ChrisJChang
left a comment
There was a problem hiding this comment.
Still Reviewing, but leaving another "requested change" to discuss what we want to do wrt the CBS preset stuff.
| @@ -287,27 +425,207 @@ if(NOT EXCLUDE_YODA) | |||
| else() | |||
| set(YODA_CONFIG_LDFLAGS "") | |||
| endif() | |||
| if(GAMBIT_MACOS_HOMEBREW_LLVM_OPENMP) | |||
There was a problem hiding this comment.
A few times through this PR, I have seen changes specifically for LLVM. Can you remember what some of the issues you had were? I'm unaware of what they are.
ChrisJChang
left a comment
There was a problem hiding this comment.
I've left a few more comments. The main one is the I would love some more commenting on your CBS code (I flagged some particular files). This will help me understand it greatly when doing this review.
I moved the mvautils code to the contrib folder, and added its LICENSE file.
| } | ||
|
|
||
| const std::string yaml_filename = yaml_file.string(); | ||
| const pid_t pid = fork(); |
There was a problem hiding this comment.
It looks like you do your batch mode with fork(). This will work well on local machines, but is likely to cause problems on batch HPC systems (messing with job accounting). Do we think we want CBS to be running on HPC systems in batch mode? If so, then it might be worth thinking about whether we can move to another system.
There was a problem hiding this comment.
Documentation: This files needs many more comments (e.. at the start of functions/structs) to briefly explain what they do.
There was a problem hiding this comment.
Same comment as solo_batch.cpp. I feel like this needs more commenting to aid understanding.
There was a problem hiding this comment.
Same comment as solo_batch.cpp: This needs more commenting to aid understanding.
There was a problem hiding this comment.
Same comment as solo_batch.cpp: Needs more commenting to aid understanding.
There was a problem hiding this comment.
Should this file be named wrappertopness.h, not warppertopness.h?
|
|
||
| // Renamed from: | ||
| // Analysis_ATLAS_8TeV_1LEPbb_20invfb | ||
| // :D unrenamed, can not find original exp report |
There was a problem hiding this comment.
This comment is probably not necessary. Eventually people will forget that they were ever renamed, and it might be confusing.
| GAMBIT.tex | ||
|
|
||
| # Pengxuan related files and folders | ||
| P.Zhu/* |
There was a problem hiding this comment.
Probably should remove the gitignore entries specifically for files that exist on your machine.
…to find it if they need it.
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.5.1 + fjcontrib 1.101 under
contrib/ (with an object library for Nsubjettiness); the old fjcore fallback is
removed (jet clustering always requires the full FastJet contrib build), and
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) and Nsubjettiness compiled as an object library. Built onceand shared with the Rivet 4 backend via
fastjet_DIR; the old fjcore fallback is gone,so ColliderBit always links the full FastJet + contrib toolset.
cmake/utilities.cmake,executables.cmake,standalones.cmake):standalone functor generation (
standalone_facilitator.py), LDFLAGS normalisation tosilence duplicate-library warnings, and CBS target registration.
Utils/json.hpp(single-header nlohmann/json, MIT) drives CBSoutput and batch merge;
Utils/util_functionsadds small helpers.MSSMEW Run-2 scan configs (
yaml_files/SUSYRun2_MSSMEW*.yaml)..gitignore: CBS artefacts, contribfastjet/fjcontrib, BOSS castxml, and thegenerated
functors_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.