Skip to content

Merge branch 'main' into fix-refactor-kf-gain-updater

47a5b3c
Select commit
Loading
Failed to load commit list.
Merged

refactor: Minor cleanup of GainMatrixUpdater #4825

Merge branch 'main' into fix-refactor-kf-gain-updater
47a5b3c
Select commit
Loading
Failed to load commit list.
ci-bridge / CI Bridge / linux_physmon succeeded Jan 21, 2026 in 27m 21s

GitLab CI: SUCCESS

This check triggered job acts/ci-bridge/68088984
in pipeline acts/ci-bridge/34899
Status: SUCCESS
Created at: 2026-01-21T11:08:52.913Z
Started at: 2026-01-21T13:44:14.223Z
Finished at: 2026-01-21T14:11:35.318Z

Details

Showing last 1024 out of 31762 total lines

✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 9199.0+-95.91141746424145 vs. 
9199.0+-95.91141746424145: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────── trk_resThetaFitted (TH1D) ───────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/47 bins, cf. 6.855654600401044
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 9199.0+-95.91141746424145 vs. 
9199.0+-95.91141746424145: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_truthPhi (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 9199.0+-95.91141746424145 vs. 
9199.0+-95.91141746424145: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_truthQOverP (TH1D) ────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 8408.0+-91.6951470907812 vs. 8408.0+-91.6951470907812:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_truthTheta (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/95 bins, cf. 9.746794344808963
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 9199.0+-95.91141746424145 vs. 
9199.0+-95.91141746424145: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── trk_weight (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 9234.0+-96.0937042682818 vs. 9234.0+-96.0937042682818:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
─────────────────────── truthPrimaryVertexDensity (TH1D) ───────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/8 bins, cf. 2.8284271247461903
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 313.0+-17.69180601295413 vs. 313.0+-17.69180601295413:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/86 bins, cf. 9.273618495495704
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 290.0+-17.029386365926403 vs. 
290.0+-17.029386365926403: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────── truthVertexMatchRatio (TH1D) ─────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/66 bins, cf. 8.12403840463596
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 314.0+-17.72004514666935 vs. 314.0+-17.72004514666935:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────── truthVertexTrackWeights (TH1D) ────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/64 bins, cf. 8.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 313.0+-17.69180601295413 vs. 313.0+-17.69180601295413:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthX (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/34 bins, cf. 5.830951894845301
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 314.0+-17.72004514666935 vs. 314.0+-17.72004514666935:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/34 bins, cf. 5.830951894845301
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 314.0+-17.72004514666935 vs. 314.0+-17.72004514666935:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/67 bins, cf. 8.18535277187245
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 314.0+-17.72004514666935 vs. 314.0+-17.72004514666935:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── vertex_primary (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/97 bins, cf. 9.848857801796104
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 311.0+-17.635192088548397 vs. 
311.0+-17.635192088548397: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────── vertex_secondary (TH1D) ────────────────────────────
🟡 Chi2Test
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/1 bins, cf. 1.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 314.0+-17.72004514666935 vs. 314.0+-17.72004514666935:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
Comparing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
╭──────────────────────────────────────────────────────────────────────────────╮
│                                  ✅ SUCCESS                                  │
│                            71 checked items valid                            │
╰──────────────────────────────────────────────────────────────────────────────╯
Making plots ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:15
::endgroup::
+ python3 Examples/Scripts/generic_plotter.py physmon/data/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time.root vertexing
physmon/data/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_hist.root --silent --config CI/physmon/config/vertexing_ttbar_pu200.yml
/builds/acts/ci-bridge/src/Examples/Scripts/generic_plotter.py:17: PydanticDeprecatedSince20: Support for class-based `config` is deprecated, use
ConfigDict instead. Deprecated in Pydantic V2.0 to be removed in V3.0. See Pydantic V2 Migration Guide at https://errors.pydantic.dev/2.12/migration/
  class Model(pydantic.BaseModel):
Found HistConfig nRecoVtx|nTrueVtx|nVtx.* for nRecoVtx : nbins=251 min=0.0 max=250.0 label=None
Found HistConfig nRecoVtx|nTrueVtx|nVtx.* for nTrueVtx : nbins=251 min=0.0 max=250.0 label=None
Found HistConfig nRecoVtx|nTrueVtx|nVtx.* for nVtxDetectorAcceptance : nbins=251 min=0.0 max=250.0 label=None
Found HistConfig nRecoVtx|nTrueVtx|nVtx.* for nVtxReconstructable : nbins=251 min=0.0 max=250.0 label=None
Found HistConfig nTracks.* for nTracksRecoVtx : nbins=301 min=0.0 max=300.0 label=None
Found HistConfig sumPt2 for sumPt2 : nbins=100 min=0.0 max=400.0 label=None
Found HistConfig truthX|truthY|recoX|recoY|seedX|seedY for recoX : nbins=100 min=-0.1 max=0.1 label=None
Found HistConfig truthX|truthY|recoX|recoY|seedX|seedY for recoY : nbins=100 min=-0.1 max=0.1 label=None
Found HistConfig truthZ|recoZ|seedZ for recoZ : nbins=100 min=-200.0 max=200.0 label=None
Found HistConfig truthT|recoT|seedT for recoT : nbins=100 min=-2000.0 max=2000.0 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covXX : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covYY : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covZZ : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covTT for covTT : nbins=100 min=0.0 max=100.0 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covXY : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covXZ : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covXT : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covYZ : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covYT : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig covXX|covXY|covXZ|covXT|covYY|covYZ|covYT|covZZ|covZT for covZT : nbins=100 min=-0.0005 max=0.0005 label=None
Found HistConfig nTracks.* for nTracksTruthVtx : nbins=301 min=0.0 max=300.0 label=None
Found HistConfig truthVertexMatchRatio for truthVertexMatchRatio : nbins=100 min=0.0 max=1.01 label=None
Found HistConfig truthX|truthY|recoX|recoY|seedX|seedY for truthX : nbins=100 min=-0.1 max=0.1 label=None
Found HistConfig truthX|truthY|recoX|recoY|seedX|seedY for truthY : nbins=100 min=-0.1 max=0.1 label=None
Found HistConfig truthZ|recoZ|seedZ for truthZ : nbins=100 min=-200.0 max=200.0 label=None
Found HistConfig truthT|recoT|seedT for truthT : nbins=100 min=-2000.0 max=2000.0 label=None
Found HistConfig resX|resY|resZ|resSeedZ for resX : nbins=100 min=-0.2 max=0.2 label=None
Found HistConfig resX|resY|resZ|resSeedZ for resY : nbins=100 min=-0.2 max=0.2 label=None
Found HistConfig resX|resY|resZ|resSeedZ for resZ : nbins=100 min=-0.2 max=0.2 label=None
Found HistConfig resT|resSeedT for resT : nbins=100 min=-50.0 max=50.0 label=None
Found HistConfig pull.* for pullX : nbins=100 min=-10.0 max=10.0 label=None
Found HistConfig pull.* for pullY : nbins=100 min=-10.0 max=10.0 label=None
Found HistConfig pull.* for pullZ : nbins=100 min=-10.0 max=10.0 label=None
Found HistConfig pull.* for pullT : nbins=100 min=-10.0 max=10.0 label=None
Found HistConfig trk_truthPhi|trk_recoPhi|trk_recoPhiFitted for trk_recoPhi : nbins=100 min=-3.2 max=3.2 label=None
Found HistConfig trk_truthTheta|trk_recoTheta|trk_recoThetaFitted for trk_recoTheta : nbins=100 min=-0.1 max=3.1 label=None
Found HistConfig trk_truthQOverP|trk_recoQOverP|trk_recoQOverPFitted for trk_recoQOverP : nbins=100 min=-1.0 max=1.0 label=None
Found HistConfig trk_truthPhi|trk_recoPhi|trk_recoPhiFitted for trk_recoPhiFitted : nbins=100 min=-3.2 max=3.2 label=None
Found HistConfig trk_truthTheta|trk_recoTheta|trk_recoThetaFitted for trk_recoThetaFitted : nbins=100 min=-0.1 max=3.1 label=None
Found HistConfig trk_truthQOverP|trk_recoQOverP|trk_recoQOverPFitted for trk_recoQOverPFitted : nbins=100 min=-1.0 max=1.0 label=None
Found HistConfig trk_truthPhi|trk_recoPhi|trk_recoPhiFitted for trk_truthPhi : nbins=100 min=-3.2 max=3.2 label=None
Found HistConfig trk_truthTheta|trk_recoTheta|trk_recoThetaFitted for trk_truthTheta : nbins=100 min=-0.1 max=3.1 label=None
Found HistConfig trk_truthQOverP|trk_recoQOverP|trk_recoQOverPFitted for trk_truthQOverP : nbins=100 min=-1.0 max=1.0 label=None
Found HistConfig trk_res.* for trk_resPhi : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_res.* for trk_resTheta : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_res.* for trk_resQOverP : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_momOverlap|trk_momOverlapFitted for trk_momOverlap : nbins=100 min=0.999 max=1.0 label=None
Found HistConfig trk_res.* for trk_resPhiFitted : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_res.* for trk_resThetaFitted : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_res.* for trk_resQOverPFitted : nbins=100 min=-0.02 max=0.02 label=None
Found HistConfig trk_momOverlap|trk_momOverlapFitted for trk_momOverlapFitted : nbins=100 min=0.999 max=1.0 label=None
Found HistConfig trk_pull.* for trk_pullPhi : nbins=50 min=-10.0 max=10.0 label=None
Found HistConfig trk_pull.* for trk_pullTheta : nbins=50 min=-10.0 max=10.0 label=None
Found HistConfig trk_pull.* for trk_pullQOverP : nbins=50 min=-10.0 max=10.0 label=None
Found HistConfig trk_pull.* for trk_pullPhiFitted : nbins=50 min=-10.0 max=10.0 label=None
Found HistConfig trk_pull.* for trk_pullThetaFitted : nbins=50 min=-10.0 max=10.0 label=None
Found HistConfig trk_pull.* for trk_pullQOverPFitted : nbins=50 min=-10.0 max=10.0 label=None
WARNING: Branch 'seedX' is empty. Skipped.
WARNING: Branch 'seedY' is empty. Skipped.
WARNING: Branch 'seedZ' is empty. Skipped.
WARNING: Branch 'seedT' is empty. Skipped.
WARNING: Branch 'resSeedZ' is empty. Skipped.
WARNING: Branch 'resSeedT' is empty. Skipped.
::group::Comparing physmon/data/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_hist.root vs.
CI/physmon/reference/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_hist.root
+ histcmp physmon/data/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_hist.root
CI/physmon/reference/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_hist.root --label-reference=reference --label-monitored=monitored '
--title=AMVF grid time | trackfinding | ttbar with 200 pileup | default seeding' -o
physmon/html/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time.html -p
physmon/html/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_plots
/builds/acts/ci-bridge/spack/opt/spack/linux-x86_64/root-6.38.00-ocl7pahxep6m233a5fqou3eyuhdsm26m/lib/root/cppyy/__init__.py:374: UserWarning:
CPyCppyy API not found (tried: /builds/acts/ci-
bridge/spack/opt/spack/linux-x86_64/python-3.14.2-uk6ljjlfvxge6xmbtomi7locxpcy67yu/include/site/python3.14); set CPPYY_API_PATH envar to the
'CPyCppyy' API directory to fix
  warnings.warn("CPyCppyy API not found (tried: %s); "
╭────────────────────────────── Comparing files: ──────────────────────────────╮
│ Monitored:                                                                   │
│ physmon/data/trackfinding_ttbar_pu200/performance_vertexing_amvf_grid_time_h │
│ ist.root                                                                     │
│ Reference:                                                                   │
│ CI/physmon/reference/trackfinding_ttbar_pu200/performance_vertexing_amvf_gri │
│ d_time_hist.root                                                             │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────────── Configuration ────────────────────────────────╮
│ Config(                                                                      │
│     checks={                                                                 │
│         '*': {                                                               │
│             'Chi2Test': {'threshold': 0.01},                                 │
│             'KolmogorovTest': {'threshold': 0.68},                           │
│             'RatioCheck': {'threshold': 3},                                  │
│             'ResidualCheck': {'threshold': 1},                               │
│             'IntegralCheck': {'threshold': 3}                                │
│         }                                                                    │
│     }                                                                        │
│ )                                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯
───────────────────────────────── covTT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/54 bins, cf. 7.3484692283495345
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 378.0+-19.44222209522358 vs. 378.0+-19.44222209522358:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covXT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/67 bins, cf. 8.18535277187245
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 336.0+-18.33030277982336 vs. 336.0+-18.33030277982336:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covXX (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/48 bins, cf. 6.928203230275509
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 182.0+-13.490737563232042 vs. 
182.0+-13.490737563232042: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covXY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/59 bins, cf. 7.681145747868608
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 333.0+-18.24828759089466 vs. 333.0+-18.24828759089466:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covXZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/68 bins, cf. 8.246211251235321
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 325.0+-18.027756377319946 vs. 
325.0+-18.027756377319946: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covYT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/68 bins, cf. 8.246211251235321
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 339.0+-18.411952639521967 vs. 
339.0+-18.411952639521967: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covYY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/46 bins, cf. 6.782329983125268
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 188.0+-13.711309200802088 vs. 
188.0+-13.711309200802088: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covYZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/70 bins, cf. 8.366600265340756
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 331.0+-18.193405398660254 vs. 
331.0+-18.193405398660254: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covZT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/69 bins, cf. 8.306623862918075
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 307.0+-17.52141546793523 vs. 307.0+-17.52141546793523:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── covZZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/47 bins, cf. 6.855654600401044
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 148.0+-12.165525060596439 vs. 
148.0+-12.165525060596439: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────────── nCleanVtx (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/2 bins, cf. 1.4142135623730951
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 2.0+-1.4142135623730951 vs. 2.0+-1.4142135623730951: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
────────────────────────────── nMergedVtx (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/1 bins, cf. 1.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 2.0+-1.4142135623730951 vs. 2.0+-1.4142135623730951: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
─────────────────────────────── nRecoVtx (TH1D) ────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/3 bins, cf. 1.7320508075688772
✅ ResidualCheck pull < 1 in 251/251 bins, cf. 15.84297951775486
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
─────────────────────────────── nSplitVtx (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/1 bins, cf. 1.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 1.0+-1.0 vs. 1.0+-1.0: (int_a - int_b) / 
sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── nTracksRecoVtx (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/65 bins, cf. 8.06225774829855
✅ ResidualCheck pull < 1 in 301/301 bins, cf. 17.349351572897472
✅ IntegralTest Intregal: 378.0+-19.44222209522358 vs. 378.0+-19.44222209522358:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── nTracksTruthVtx (TH1D) ────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/82 bins, cf. 9.055385138137417
✅ ResidualCheck pull < 1 in 301/301 bins, cf. 17.349351572897472
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
─────────────────────────────── nTrueVtx (TH1D) ────────────────────────────────
🟡 Chi2Test
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/1 bins, cf. 1.0
✅ ResidualCheck pull < 1 in 251/251 bins, cf. 15.84297951775486
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────── nVtxDetectorAcceptance (TH1D) ─────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/3 bins, cf. 1.7320508075688772
✅ ResidualCheck pull < 1 in 251/251 bins, cf. 15.84297951775486
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
────────────────────────── nVtxReconstructable (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/2 bins, cf. 1.4142135623730951
✅ ResidualCheck pull < 1 in 251/251 bins, cf. 15.84297951775486
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── pullT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/29 bins, cf. 5.385164807134504
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── pullX (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/31 bins, cf. 5.5677643628300215
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── pullY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/31 bins, cf. 5.5677643628300215
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── pullZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/33 bins, cf. 5.744562646538029
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 376.0+-19.390719429665317 vs. 
376.0+-19.390719429665317: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── recoOverAcc (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/3 bins, cf. 1.7320508075688772
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── recoOverRecble (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/2 bins, cf. 1.4142135623730951
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────── recoOverTrue (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/2 bins, cf. 1.4142135623730951
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 3.0+-1.7320508075688772 vs. 3.0+-1.7320508075688772: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── recoT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/92 bins, cf. 9.591663046625438
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 349.0+-18.681541692269406 vs. 
349.0+-18.681541692269406: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────── recoVertexClassification (TH1D) ────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/2 bins, cf. 1.4142135623730951
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 372.0+-19.28730152198591 vs. 372.0+-19.28730152198591:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────── recoVertexContamination (TH1D) ────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/33 bins, cf. 5.744562646538029
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 376.0+-19.390719429665317 vs. 
376.0+-19.390719429665317: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────── recoVertexTrackWeights (TH1D) ─────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/64 bins, cf. 8.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── recoX (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/74 bins, cf. 8.602325267042627
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 368.0+-19.183326093250876 vs. 
368.0+-19.183326093250876: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── recoY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/71 bins, cf. 8.426149773176359
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 372.0+-19.28730152198591 vs. 372.0+-19.28730152198591:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── recoZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/66 bins, cf. 8.12403840463596
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 378.0+-19.44222209522358 vs. 378.0+-19.44222209522358:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── resT (TH1D) ──────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/30 bins, cf. 5.477225575051661
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── resX (TH1D) ──────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/55 bins, cf. 7.416198487095663
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 374.0+-19.339079605813716 vs. 
374.0+-19.339079605813716: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── resY (TH1D) ──────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/50 bins, cf. 7.0710678118654755
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 376.0+-19.390719429665317 vs. 
376.0+-19.390719429665317: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────────── resZ (TH1D) ──────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/66 bins, cf. 8.12403840463596
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 367.0+-19.157244060668017 vs. 
367.0+-19.157244060668017: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── sumPt2 (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/41 bins, cf. 6.4031242374328485
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 374.0+-19.339079605813716 vs. 
374.0+-19.339079605813716: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_momOverlap (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/7 bins, cf. 2.6457513110645907
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────── trk_momOverlapFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/4 bins, cf. 2.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── trk_pullPhi (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/28 bins, cf. 5.291502622129181
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────── trk_pullPhiFitted (TH1D) ───────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/39 bins, cf. 6.244997998398398
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6977.0+-83.52843827104634 vs. 
6977.0+-83.52843827104634: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_pullQOverP (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/47 bins, cf. 6.855654600401044
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6971.0+-83.49251463454674 vs. 
6971.0+-83.49251463454674: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────── trk_pullQOverPFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/46 bins, cf. 6.782329983125268
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6971.0+-83.49251463454674 vs. 
6971.0+-83.49251463454674: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_pullTheta (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/22 bins, cf. 4.69041575982343
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────── trk_pullThetaFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/32 bins, cf. 5.656854249492381
✅ ResidualCheck pull < 1 in 50/50 bins, cf. 7.0710678118654755
✅ IntegralTest Intregal: 6973.0+-83.50449089719666 vs. 
6973.0+-83.50449089719666: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── trk_recoPhi (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 7009.0+-83.71977066380438 vs. 
7009.0+-83.71977066380438: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────── trk_recoPhiFitted (TH1D) ───────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 7009.0+-83.71977066380438 vs. 
7009.0+-83.71977066380438: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_recoQOverP (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6254.0+-79.08223567907018 vs. 
6254.0+-79.08223567907018: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────── trk_recoQOverPFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6253.0+-79.07591289387686 vs. 
6253.0+-79.07591289387686: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_recoTheta (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/95 bins, cf. 9.746794344808963
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 7009.0+-83.71977066380438 vs. 
7009.0+-83.71977066380438: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────── trk_recoThetaFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/95 bins, cf. 9.746794344808963
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 7009.0+-83.71977066380438 vs. 
7009.0+-83.71977066380438: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── trk_resPhi (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/83 bins, cf. 9.1104335791443
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6977.0+-83.52843827104634 vs. 
6977.0+-83.52843827104634: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────── trk_resPhiFitted (TH1D) ────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/47 bins, cf. 6.855654600401044
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6979.0+-83.5404093837228 vs. 6979.0+-83.5404093837228:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_resQOverP (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6756.0+-82.19489035213807 vs. 
6756.0+-82.19489035213807: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────── trk_resQOverPFitted (TH1D) ──────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6762.0+-82.23138087129512 vs. 
6762.0+-82.23138087129512: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_resTheta (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/36 bins, cf. 6.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────── trk_resThetaFitted (TH1D) ───────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/28 bins, cf. 5.291502622129181
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
───────────────────────────── trk_truthPhi (TH1D) ──────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_truthQOverP (TH1D) ────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6235.0+-78.96201618499872 vs. 
6235.0+-78.96201618499872: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────── trk_truthTheta (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/95 bins, cf. 9.746794344808963
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 6983.0+-83.56434646426669 vs. 
6983.0+-83.56434646426669: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
────────────────────────────── trk_weight (TH1D) ───────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 7008.0+-83.7137981458254 vs. 7008.0+-83.7137981458254:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
─────────────────────── truthPrimaryVertexDensity (TH1D) ───────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/7 bins, cf. 2.6457513110645907
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 371.0+-19.261360284258224 vs. 
371.0+-19.261360284258224: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthT (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/92 bins, cf. 9.591663046625438
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 348.0+-18.65475810617763 vs. 348.0+-18.65475810617763:
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
───────────────────────── truthVertexMatchRatio (TH1D) ─────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/25 bins, cf. 5.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────── truthVertexTrackWeights (TH1D) ────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/67 bins, cf. 8.18535277187245
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 376.0+-19.390719429665317 vs. 
376.0+-19.390719429665317: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthX (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/34 bins, cf. 5.830951894845301
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthY (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/34 bins, cf. 5.830951894845301
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────────── truthZ (TH1D) ─────────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/66 bins, cf. 8.12403840463596
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
──────────────────────────── vertex_primary (TH1D) ─────────────────────────────
✅ Chi2Test 1.0 > 0.01
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/100 bins, cf. 10.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 374.0+-19.339079605813716 vs. 
374.0+-19.339079605813716: (int_a - int_b) / sqrt(sigma(int_a)^2 + 
sigma(int_b)^2) = 0.00 < 3
─────────────────────────── vertex_secondary (TH1D) ────────────────────────────
🟡 Chi2Test
✅ KolmogorovTest 1.0 > 0.68
✅ RatioCheck (a/b - 1) / sigma(a/b) > 3 for 0/1 bins, cf. 1.0
✅ ResidualCheck pull < 1 in 100/100 bins, cf. 10.0
✅ IntegralTest Intregal: 377.0+-19.4164878389476 vs. 377.0+-19.4164878389476: 
(int_a - int_b) / sqrt(sigma(int_a)^2 + sigma(int_b)^2) = 0.00 < 3
Comparing... ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:00
╭──────────────────────────────────────────────────────────────────────────────╮
│                                  ✅ SUCCESS                                  │
│                            71 checked items valid                            │
╰──────────────────────────────────────────────────────────────────────────────╯
Making plots ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 100% 0:00:15
::endgroup::
::group::Comparing physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_gx2f.root vs.
physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_kf.root
+ histcmp physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_gx2f.root
physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_kf.root --label-reference=reference --label-monitored=monitored '--title=Comparison -
Truth tracking (GX2F vs KF)' -o physmon/html/trackfitting_gx2f_vs_kf/performance_trackfitting.html -p
physmon/html/trackfitting_gx2f_vs_kf/performance_trackfitting_plots --config CI/physmon/config/info_only.yml --label-reference=KF --label-
monitored=GX2F
/builds/acts/ci-bridge/spack/opt/spack/linux-x86_64/root-6.38.00-ocl7pahxep6m233a5fqou3eyuhdsm26m/lib/root/cppyy/__init__.py:374: UserWarning:
CPyCppyy API not found (tried: /builds/acts/ci-
bridge/spack/opt/spack/linux-x86_64/python-3.14.2-uk6ljjlfvxge6xmbtomi7locxpcy67yu/include/site/python3.14); set CPPYY_API_PATH envar to the
'CPyCppyy' API directory to fix
  warnings.warn("CPyCppyy API not found (tried: %s); "
╭────────────────────────────── Comparing files: ──────────────────────────────╮
│ Monitored:                                                                   │
│ physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_gx2f.root      │
│ Reference:                                                                   │
│ physmon/data/trackfitting_gx2f_vs_kf/performance_trackfitting_kf.root        │
╰──────────────────────────────────────────────────────────────────────────────╯
╭─────────────────────────────── Configuration ────────────────────────────────╮
│ Config(                                                                      │
│     checks={                                                                 │
│         '*': {                                                               │
│             'Chi2Test': None,                                                │
│             'KolmogorovTest': None,                                          │
│             'RatioCheck': None,                                              │
│             'ResidualCheck': None,                                           │
│             'IntegralCheck': None                                            │
│         }                                                                    │
│     }                                                                        │
│ )                                                                            │
╰──────────────────────────────────────────────────────────────────────────────╯
─────────────────────────── nHoles_vs_eta (TProfile) ───────────────────────────
::warning ::nHoles_vs_eta: has no applicable checks
─────────────────────────── nHoles_vs_pT (TProfile) ────────────────────────────
::warning ::nHoles_vs_pT: has no applicable checks
─────────────────────── nMeasurements_vs_eta (TProfile) ────────────────────────
::warning ::nMeasurements_vs_eta: has no applicable checks
──────────────────────── nMeasurements_vs_pT (TProfile) ────────────────────────
::warning ::nMeasurements_vs_pT: has no applicable checks
───────────────────────── nOutliers_vs_eta (TProfile) ──────────────────────────
::warning ::nOutliers_vs_eta: has no applicable checks
────────────────────────── nOutliers_vs_pT (TProfile) ──────────────────────────
::warning ::nOutliers_vs_pT: has no applicable checks
──────────────────────── nSharedHits_vs_eta (TProfile) ─────────────────────────
::warning ::nSharedHits_vs_eta: has no applicable checks
───────────────────────── nSharedHits_vs_pT (TProfile) ─────────────────────────
::warning ::nSharedHits_vs_pT: has no applicable checks
────────────────────────── nStates_vs_eta (TProfile) ───────────────────────────
::warning ::nStates_vs_eta: has no applicable checks
─────────────────────────── nStates_vs_pT (TProfile) ───────────────────────────
::warning ::nStates_vs_pT: has no applicable checks
──────────────────────────────── pull_d0 (TH1F) ────────────────────────────────
::warning ::pull_d0: has no applicable checks
──────────────────────────── pull_d0_vs_eta (TH2F) ─────────────────────────────
::warning ::pull_d0_vs_eta: has no applicable checks
───────────────────────────── pull_d0_vs_pT (TH2F) ─────────────────────────────
::warning ::pull_d0_vs_pT: has no applicable checks
─────────────────────────────── pull_phi (TH1F) ────────────────────────────────
::warning ::pull_phi: has no applicable checks
──────────────────────────── pull_phi_vs_eta (TH2F) ────────────────────────────
::warning ::pull_phi_vs_eta: has no applicable checks
──────────────────────────── pull_phi_vs_pT (TH2F) ─────────────────────────────
::warning ::pull_phi_vs_pT: has no applicable checks
─────────────────────────────── pull_qop (TH1F) ────────────────────────────────
::warning ::pull_qop: has no applicable checks
──────────────────────────── pull_qop_vs_eta (TH2F) ────────────────────────────
::warning ::pull_qop_vs_eta: has no applicable checks
──────────────────────────── pull_qop_vs_pT (TH2F) ────────────────────────────