dpT ‐ Mirror Dial Discrete Grid Fits - rvizarreta/gundam-icarus GitHub Wiki
Treatment for the four GENIE "on-off" / mirror dials, following the collaboration-accepted approach (Smedley, ICARUS XS WG). No dials are removed.
| Dial | Treatment | Setting |
|---|---|---|
ThetaDelta2NRad |
float at default |
isEnabled: true (no isFixed, prior 0) — inert, kept for completeness |
VecFFCCQEshape |
float, tiny CV nudge |
isEnabled: true, priorValue: 0.005 (off the mirror point; not floated to mid-range because the default model is theoretically preferred) |
DecayAngMEC |
fixed, grid |
isFixed: true, priorValue: 0 or 1
|
Theta_Delta2Npi |
fixed, grid |
isFixed: true, priorValue: 0 or 1
|
DecayAngMEC and Theta_Delta2Npi are scanned over the 2×2 grid of their
physical endpoints (0 = CV model, 1 = alternative model). All four fits keep
every dial enabled and have the same number of free parameters, so total χ²
is directly comparable across them.
All edits are in Configs_ParameterSet/GENIE/GENIEDialsDef.yaml.
Do not edit the C generator (makeParameterRootFile) — the prior is set per-fit in the YAML.
Fixed across all four fits:
- parameterName: "GENIEReWeight_SBN_v1_multisigma_VecFFCCQEshape"
isEnabled: true
priorValue: 0.005
# isFixed left commented out -> floats
...
- parameterName: "GENIEReWeight_SBN_v1_multisigma_ThetaDelta2NRad"
isEnabled: true
# default, floats at prior 0
...Changed per fit:
- parameterName: "GENIEReWeight_SBN_v1_multisigma_DecayAngMEC"
isEnabled: true
isFixed: true
priorValue: <0 or 1>
...
- parameterName: "GENIEReWeight_SBN_v1_multisigma_Theta_Delta2Npi"
isEnabled: true
isFixed: true
priorValue: <0 or 1>
...Run from the configs/ directory. Naming: D{0,1}_T{0,1} =
(DecayAngMEC, Theta_Delta2Npi).
gundamFitter -c RunConfigs/dpT/RealData/config_Fitter_RealData_dpT.yaml \
-o real_dpT_D0_T0.root
gundamCalcXsec -c RunConfigs/dpT/RealData/config_CalcXSec_RealData_dpT.yaml \
-f real_dpT_D0_T0.root \
-n 10000 \
-o real_XSec_dpT_D0_T0.root \
--use-bf-as-xsecCopy results to local Google Drive:
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_dpT_D0_T0.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/Fitter/dpT/RealData"
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_XSec_dpT_D0_T0.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/XSection/dpT/RealData"gundamFitter -c RunConfigs/dpT/RealData/config_Fitter_RealData_dpT.yaml \
-o real_dpT_D0_T1.root
gundamCalcXsec -c RunConfigs/dpT/RealData/config_CalcXSec_RealData_dpT.yaml \
-f real_dpT_D0_T1.root \
-n 10000 \
-o real_XSec_dpT_D0_T1.root \
--use-bf-as-xsecCopy results to local Google Drive:
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_dpT_D0_T1.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/Fitter/dpT/RealData"
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_XSec_dpT_D0_T1.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/XSection/dpT/RealData"gundamFitter -c RunConfigs/dpT/RealData/config_Fitter_RealData_dpT.yaml \
-o real_dpT_D1_T0.root
gundamCalcXsec -c RunConfigs/dpT/RealData/config_CalcXSec_RealData_dpT.yaml \
-f real_dpT_D1_T0.root \
-n 10000 \
-o real_XSec_dpT_D1_T0.root \
--use-bf-as-xsecCopy results to local Google Drive:
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_dpT_D1_T0.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/Fitter/dpT/RealData"
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_XSec_dpT_D1_T0.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/XSection/dpT/RealData"gundamFitter -c RunConfigs/dpT/RealData/config_Fitter_RealData_dpT.yaml \
-o real_dpT_D1_T1.root
gundamCalcXsec -c RunConfigs/dpT/RealData/config_CalcXSec_RealData_dpT.yaml \
-f real_dpT_D1_T1.root \
-n 10000 \
-o real_XSec_dpT_D1_T1.root \
--use-bf-as-xsecCopy results to local Google Drive:
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_dpT_D1_T1.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/Fitter/dpT/RealData"
scp [email protected]:"/exp/icarus/app/users/rvizarr/gundam-icarus/configs/real_XSec_dpT_D1_T1.root" "/Users/rvizarreta/Library/CloudStorage/[email protected]/My Drive/🏛 PhD Repository/🚀 Research/🤖 Experiments&Projects/ICARUS/ICARUS_CC0pi_GUNDAM/data/XSection/dpT/RealData"After launching each fit, confirm the two grid dials are registered as fixed at the intended values (catches a mis-edited YAML before wasting the run):
gundamFitter -c RunConfigs/dpT/RealData/config_Fitter_RealData_dpT.yaml \
-o real_dpT_D0_T0.root 2>&1 | tee fit_D0_T0.log \
| grep -iA1 "DecayAngMEC\|Theta_Delta2Npi"- Read the total χ² (post-fit total likelihood,
FitterEngine/postFit/llhState_TNamed,Total likelihoodfield) from each of the four fits. - Central result = fit with minimum total χ².
- Reject any fit with Δχ² > 1 relative to the minimum.
- Extract the cross section from each surviving fit; take the bin-by-bin spread across survivors as an additional model systematic, added to the error budget.
All four fits share the same free-parameter count, so raw total-χ² comparison is valid (no per-dof normalization needed).