Fix a bug in python/tool_base/FastScan.py #1182
Conversation
WalkthroughMove free function combineCreateNLL into class scope as Combine::combineCreateNLL and update all call sites. Add Combine header and register Combine in ROOT dictionary. Update Python FastScan to call ROOT.Combine.combineCreateNLL, create per-parameter canvases, and save per-parameter PDFs. Add CVMFS FastScan CI step and bump CI ROOT/gcc entries. Changes
Sequence Diagram(s)sequenceDiagram
participant Caller as C++ caller (e.g. MultiDimFit)
participant Combine as Combine::combineCreateNLL
participant Roo as RooFit (pdf/data)
Caller->>Combine: Combine::combineCreateNLL(pdf, data, constraints, offset)
Combine->>Roo: build NLL from pdf + data (+constraints)
Roo-->>Combine: RooAbsReal* (NLL)
Combine-->>Caller: unique_ptr<RooAbsReal>
rect rgba(208,240,192,0.6)
Note right of Combine: Static member now used across call sites
end
sequenceDiagram
participant FastScan as FastScan.py
participant ROOT as ROOT bindings
FastScan->>ROOT: for each parameter: canv_name = "par_<name>"
FastScan->>ROOT: ROOT.TCanvas(canv_name, canv_name)
FastScan->>ROOT: ROOT.Combine.combineCreateNLL(pdf, data)
FastScan->>ROOT: canv.Print("%s.pdf%s" % (self.args.output, extra))
rect rgba(224,235,255,0.6)
Note right of FastScan: Per-parameter canvases and namespaced NLL call
end
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~25 minutes
Possibly related PRs
Poem
Pre-merge checks and finishing touches❌ Failed checks (2 warnings)
✅ Passed checks (1 passed)
✨ Finishing touches🧪 Generate unit tests (beta)
📜 Recent review detailsConfiguration used: CodeRabbit UI Review profile: CHILL Plan: Pro 📒 Files selected for processing (1)
🚧 Files skipped from review as they are similar to previous changes (1)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (8)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Codecov Report❌ Patch coverage is
❌ Your patch status has failed because the patch coverage (13.88%) is below the target coverage (98.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## main #1182 +/- ##
=======================================
Coverage 22.25% 22.25%
=======================================
Files 195 195
Lines 26154 26160 +6
Branches 3883 3884 +1
=======================================
+ Hits 5820 5822 +2
- Misses 20334 20338 +4
🚀 New features to boost your workflow:
|
Updated the root version for Python 3.10 in CI workflow.
|
Not sure what is happening in ROOT 6.32 build from Conda, other Conda versions, LCG_106 with ROOT 6.32 seem to be working, as well as CMSSW |
Fixes issue reported https://cms-talk.web.cern.ch/t/combinecreatenll-not-properly-integrated-with-pyroot-on-with-combine-v10-2-0-onwards/137088
Summary by CodeRabbit
New Features
Tests
Refactor
Chores