diff --git a/config/AR25_22i/CommonParam.xml b/config/AR23_31i/CommonParam.xml
similarity index 99%
rename from config/AR25_22i/CommonParam.xml
rename to config/AR23_31i/CommonParam.xml
index 2b53094c08..3aa433ce27 100644
--- a/config/AR25_22i/CommonParam.xml
+++ b/config/AR23_31i/CommonParam.xml
@@ -208,7 +208,7 @@ Or changing the name of this parameter set
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Value of axial form factor at Q2=0
-->
- -1.2670
+ -1.2754
+
+
+
+
+
+
+
+
+ genie::LocalFGM/SpectralFunctionLikeWithCorrelation
+
+
+
+
+
+
+
+ true
+ genie::HAIntranuke2018/Default
+
+
+
+
+
+
+ genie::NievesQELCCPXSec/ZExp_minerva
+
+
+ genie::AhrensNCELPXSec/Default
+ genie::RosenbluthPXSec/Default
+
+
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/EM-NoPauliBlock
+
+
+
+
+
+
+
+
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+
+
+
+
+
+
+
+
+ genie::BergerSehgalCOHPiPXSec2015/Default
+ genie::BergerSehgalCOHPiPXSec2015/Default
+
+
+
+
+ genie::BardinIMDRadCorPXSec/Default
+ genie::IMDAnnihilationPXSec/Default
+ genie::NuElectronPXSec/Default
+ genie::KovalenkoQELCharmPXSec/Default
+ genie::AivazisCharmPXSecLO/CC-Default
+ genie::AlamSimoAtharVacasSKPXSec2014/Default
+ genie::PaisQELLambdaPXSec/Default
+ genie::H3AMNuGammaPXSec/Default
+ genie::ReinDFRPXSec/Default
+ genie::ReinDFRPXSec/Default
+
+
+ genie::SuSAv2MECPXSec/Default
+ genie::EmpiricalMECPXSec2015/Default
+
+ genie::DummyPXSec/Default
+ genie::NNBarOscDummyPXSec/Default
+
+
+
+
+
+
diff --git a/config/AR25_22i/NucDeExcitationSim.xml b/config/AR23_31i/NucDeExcitationSim.xml
similarity index 100%
rename from config/AR25_22i/NucDeExcitationSim.xml
rename to config/AR23_31i/NucDeExcitationSim.xml
diff --git a/config/AR23_31i/README.md b/config/AR23_31i/README.md
new file mode 100644
index 0000000000..11d129c605
--- /dev/null
+++ b/config/AR23_31i/README.md
@@ -0,0 +1,14 @@
+# Liquid Argon Experiment tune
+
+This configuration is the result of requests from SBN and DUNE collaborations.
+It is designed to serve as baseline model for SBN analyses.
+
+The physics content is the following
+ - Valencia model for 1p1h, using z-expansion
+ - SuSAv2 model for 2p2h
+ - Spectral function like approach for the Local Fermi Gas
+ - Includes events with SRC-like missing momentum within the bulk of the $p_{miss}$ distribution,
+ but not extending pass the LFG cutoff in $p_{miss}$.
+ - The parameters related to pion production are taken from the G18_10a_02_11b tune in order to ensure a better starting point.
+ - De-exitation photons are enabled for Argon
+ - Minerva form factors from https://arxiv.org/pdf/2512.14097
\ No newline at end of file
diff --git a/config/AR25_22i/TuneGeneratorList.xml b/config/AR23_31i/TuneGeneratorList.xml
similarity index 100%
rename from config/AR25_22i/TuneGeneratorList.xml
rename to config/AR23_31i/TuneGeneratorList.xml
diff --git a/config/AR23_32i/CommonParam.xml b/config/AR23_32i/CommonParam.xml
new file mode 100644
index 0000000000..3aa433ce27
--- /dev/null
+++ b/config/AR23_32i/CommonParam.xml
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.088962
+ 1.062213
+ 0.838730
+
+
+
+
+
+ 0.501716712132
+ 1.16639E-5
+ 7.2973525332858855E-3
+
+
+
+
+ 0.804
+ 0.463
+
+
+
+
+
+
+ 0.97417
+ 0.2248
+ 0.220
+ 0.995
+
+ 0.227780466682
+
+
+
+
+
+
+ 1.4
+ 3.0
+
+
+
+
+ 1.430
+
+
+
+
+
+ true
+ 1.809000
+
+
+
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+
+
+
+
+
+ 0.0001
+ 0.0150
+ 0.0150
+ 0.0200
+ 0.0160
+ 0.0250
+ 0.0280
+ 0.0280
+ 0.0230
+ 0.0300
+ 0.0280
+ 0.0310
+ 0.0310
+ false
+
+
+ SuSA
+
+
+
+
+
+
+ 1.000
+
+
+ 0.000
+ 1.000
+
+
+ 0.250
+
+
+
+
+
+
+
+ 7.0
+
+
+ 0.35
+
+
+
+
+
+ -1.2754
+
+
+ 0.994989
+ 0.840
+
+
+
+
+
+ 2.7930
+ -1.913042
+
+
+
+
+
+ 2.0
+
+
+
+
+ genie::BBA07ELFormFactorsModel/Default
+
+
+ false
+ genie::TransverseEnhancementFFModel/Default
+
+
+
+
+
+
+ P33(1232),S11(1535),D13(1520),S11(1650),D13(1700),D15(1675),
+ S31(1620),D33(1700),P11(1440),P33(1600),P13(1720),F15(1680),
+ P31(1910),P33(1920),F35(1905),F37(1950),P11(1710)
+
+
+
+
+
+ false
+
+
+
+
+
+
+ 0.1
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.441
+ 0.1349766
+ 0.547862
+ 0.827
+ -0.38
+ -0.0427
+
+
+
+
+
+
+ 2.30
+ 3.00
+
+
+
+
+ genie_pdg_table.txt
+
+
+
+
+
+
+ 0.010
+ 1000.000
+
+
+
+
+
+
diff --git a/config/AR23_32i/MECInteractionListGenerator.xml b/config/AR23_32i/MECInteractionListGenerator.xml
new file mode 100644
index 0000000000..a6ea945a66
--- /dev/null
+++ b/config/AR23_32i/MECInteractionListGenerator.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+ true
+ false
+
+
+
+ false
+ false
+ true
+
+
+
+
diff --git a/config/AR23_32i/ModelConfiguration.xml b/config/AR23_32i/ModelConfiguration.xml
new file mode 100644
index 0000000000..4418853b34
--- /dev/null
+++ b/config/AR23_32i/ModelConfiguration.xml
@@ -0,0 +1,145 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ genie::LocalFGM/SpectralFunctionLikeWithCorrelation
+
+
+
+
+
+
+
+ true
+ genie::HAIntranuke2018/Default
+
+
+
+
+
+
+ genie::NievesQELCCPXSec/ZExp_lqcd
+
+
+ genie::AhrensNCELPXSec/Default
+ genie::RosenbluthPXSec/Default
+
+
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/EM-NoPauliBlock
+
+
+
+
+
+
+
+
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+
+
+
+
+
+
+
+
+ genie::BergerSehgalCOHPiPXSec2015/Default
+ genie::BergerSehgalCOHPiPXSec2015/Default
+
+
+
+
+ genie::BardinIMDRadCorPXSec/Default
+ genie::IMDAnnihilationPXSec/Default
+ genie::NuElectronPXSec/Default
+ genie::KovalenkoQELCharmPXSec/Default
+ genie::AivazisCharmPXSecLO/CC-Default
+ genie::AlamSimoAtharVacasSKPXSec2014/Default
+ genie::PaisQELLambdaPXSec/Default
+ genie::H3AMNuGammaPXSec/Default
+ genie::ReinDFRPXSec/Default
+ genie::ReinDFRPXSec/Default
+
+
+ genie::SuSAv2MECPXSec/Default
+ genie::EmpiricalMECPXSec2015/Default
+
+ genie::DummyPXSec/Default
+ genie::NNBarOscDummyPXSec/Default
+
+
+
+
+
+
diff --git a/config/AR23_32i/NucDeExcitationSim.xml b/config/AR23_32i/NucDeExcitationSim.xml
new file mode 100644
index 0000000000..d9029fd755
--- /dev/null
+++ b/config/AR23_32i/NucDeExcitationSim.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ true
+ true
+
+
+
diff --git a/config/AR23_32i/README.md b/config/AR23_32i/README.md
new file mode 100644
index 0000000000..2964746521
--- /dev/null
+++ b/config/AR23_32i/README.md
@@ -0,0 +1,14 @@
+# Liquid Argon Experiment tune
+
+This configuration is the result of requests from SBN and DUNE collaborations.
+It is designed to serve as baseline model for SBN analyses.
+
+The physics content is the following
+ - Valencia model for 1p1h, using z-expansion
+ - SuSAv2 model for 2p2h
+ - Spectral function like approach for the Local Fermi Gas
+ - Includes events with SRC-like missing momentum within the bulk of the $p_{miss}$ distribution,
+ but not extending pass the LFG cutoff in $p_{miss}$.
+ - The parameters related to pion production are taken from the G18_10a_02_11b tune in order to ensure a better starting point.
+ - De-exitation photons are enabled for Argon
+ - LQCD form factors from https://arxiv.org/pdf/2512.14097
\ No newline at end of file
diff --git a/config/AR23_32i/TuneGeneratorList.xml b/config/AR23_32i/TuneGeneratorList.xml
new file mode 100644
index 0000000000..938e224062
--- /dev/null
+++ b/config/AR23_32i/TuneGeneratorList.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ 18
+ genie::EventGenerator/QEL-CC
+ genie::EventGenerator/QEL-NC
+ genie::EventGenerator/RES-CC
+ genie::EventGenerator/RES-NC
+ genie::EventGenerator/DIS-CC
+ genie::EventGenerator/DIS-NC
+ genie::EventGenerator/COH-CC-PION
+ genie::EventGenerator/COH-NC-PION
+ genie::EventGenerator/DIS-CC-CHARM
+ genie::EventGenerator/QEL-CC-CHARM
+ genie::EventGenerator/NUE-EL
+ genie::EventGenerator/IMD
+ genie::EventGenerator/IMD-ANH
+ genie::EventGenerator/DFR-CC
+ genie::EventGenerator/DFR-NC
+ genie::EventGenerator/QEL-CC-LAMBDA
+ genie::EventGenerator/MEC-CC
+ genie::EventGenerator/MEC-NC
+
+
+
+
diff --git a/config/AR25_20i/ModelConfiguration.xml b/config/AR25_20i/ModelConfiguration.xml
index 1313e2bf20..63d8605d4e 100644
--- a/config/AR25_20i/ModelConfiguration.xml
+++ b/config/AR25_20i/ModelConfiguration.xml
@@ -39,11 +39,11 @@ University of Liverpool
-
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
+
+ genie::SpectralFunc/ApproxElements
+
+ genie::SpectralFunc/ApproxElements
+ genie::SpectralFunc/ApproxElements
+
+
+
+
+
+
+
+
+
+ 1.088962
+ 1.062213
+ 0.838730
+
+
+
+
+
+ 0.501716712132
+ 1.16639E-5
+ 7.2973525332858855E-3
+
+
+
+
+ 0.804
+ 0.463
+
+
+
+
+
+
+ 0.97417
+ 0.2248
+ 0.220
+ 0.995
+
+ 0.227780466682
+
+
+
+
+
+
+ 1.4
+ 3.0
+
+
+
+
+ 1.430
+
+
+
+
+
+ true
+ 1.809000
+
+
+
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+
+
+
+
+
+ 0.0001
+ 0.0150
+ 0.0150
+ 0.0200
+ 0.0160
+ 0.0250
+ 0.0280
+ 0.0280
+ 0.0230
+ 0.0300
+ 0.0280
+ 0.0310
+ 0.0310
+ false
+
+
+ SuSA
+
+
+
+
+
+
+ 1.000
+
+
+ 0.000
+ 1.000
+
+
+ 0.250
+
+
+
+
+
+
+
+ 7.0
+
+
+ 0.35
+
+
+
+
+
+ -1.2754
+
+
+ 0.994989
+ 0.840
+
+
+
+
+
+ 2.7930
+ -1.913042
+
+
+
+
+
+ 2.0
+
+
+
+
+ genie::BBA07ELFormFactorsModel/Default
+
+
+ false
+ genie::TransverseEnhancementFFModel/Default
+
+
+
+
+
+
+ P33(1232),S11(1535),D13(1520),S11(1650),D13(1700),D15(1675),
+ S31(1620),D33(1700),P11(1440),P33(1600),P13(1720),F15(1680),
+ P31(1910),P33(1920),F35(1905),F37(1950),P11(1710)
+
+
+
+
+
+ false
+
+
+
+
+
+
+ 0.1
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.441
+ 0.1349766
+ 0.547862
+ 0.827
+ -0.38
+ -0.0427
+
+
+
+
+
+
+ 2.30
+ 3.00
+
+
+
+
+ genie_pdg_table.txt
+
+
+
+
+
+
+ 0.010
+ 1000.000
+
+
+
+
+
+
diff --git a/config/AR25_31i/MECInteractionListGenerator.xml b/config/AR25_31i/MECInteractionListGenerator.xml
new file mode 100644
index 0000000000..a6ea945a66
--- /dev/null
+++ b/config/AR25_31i/MECInteractionListGenerator.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+ true
+ false
+
+
+
+ false
+ false
+ true
+
+
+
+
diff --git a/config/AR25_31i/ModelConfiguration.xml b/config/AR25_31i/ModelConfiguration.xml
new file mode 100644
index 0000000000..98b6dc17d7
--- /dev/null
+++ b/config/AR25_31i/ModelConfiguration.xml
@@ -0,0 +1,152 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+ genie::LocalFGM/SpectralFunctionLikeWithCorrelation
+
+
+
+
+
+ genie::SpectralFunc/ApproxElements
+
+ genie::SpectralFunc/ApproxElements
+ genie::SpectralFunc/ApproxElements
+
+
+
+
+
+ true
+ genie::HAIntranuke2018/Default
+
+
+
+
+
+
+ genie::NievesQELCCPXSec/ZExpNoRPA_minerva
+
+
+ genie::AhrensNCELPXSec/Default
+ genie::RosenbluthPXSec/Default
+
+
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/NoPauliBlock
+ genie::BergerSehgalRESPXSec2014/EM-NoPauliBlock
+
+
+
+
+
+
+
+
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+ genie::KNOTunedQPMDISPXSec/Default
+
+
+
+
+
+
+
+
+ genie::BergerSehgalCOHPiPXSec2015/Default
+ genie::BergerSehgalCOHPiPXSec2015/Default
+
+
+
+
+ genie::BardinIMDRadCorPXSec/Default
+ genie::IMDAnnihilationPXSec/Default
+ genie::NuElectronPXSec/Default
+ genie::KovalenkoQELCharmPXSec/Default
+ genie::AivazisCharmPXSecLO/CC-Default
+ genie::AlamSimoAtharVacasSKPXSec2014/Default
+ genie::PaisQELLambdaPXSec/Default
+ genie::H3AMNuGammaPXSec/Default
+ genie::ReinDFRPXSec/Default
+ genie::ReinDFRPXSec/Default
+
+
+ genie::SuSAv2MECPXSec/Default
+ genie::EmpiricalMECPXSec2015/Default
+
+ genie::DummyPXSec/Default
+ genie::NNBarOscDummyPXSec/Default
+
+
+
+
+
+
diff --git a/config/AR25_31i/NucDeExcitationSim.xml b/config/AR25_31i/NucDeExcitationSim.xml
new file mode 100644
index 0000000000..d9029fd755
--- /dev/null
+++ b/config/AR25_31i/NucDeExcitationSim.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ true
+ true
+
+
+
diff --git a/config/AR25_31i/README.md b/config/AR25_31i/README.md
new file mode 100644
index 0000000000..68c93a7026
--- /dev/null
+++ b/config/AR25_31i/README.md
@@ -0,0 +1,16 @@
+# SBN tune
+
+This configuration is based upon AR23_20i_00_000 but has modifications
+requested in summer 2025 by the Short Baseline Neutrino program experiments.
+
+Notable components of the physics model are the following:
+ - Valencia model for 1p1h, using z-expansion, with RPA turned off
+ - SuSAv2 model for 2p2h
+ - Spectral function for select nuclei, including one for 40Ar based on JLab
+ measurements (see https://doi.org/10.1103/PhysRevD.105.112002
+ and https://doi.org/10.1103/PhysRevD.107.012005)
+ - Other nuclei use the AR23_20i_00_000 "spectral-function-like approach" for LFG
+ - The parameters related to pion production are taken from the G18_10a_02_11b
+ tune in order to ensure a better starting point.
+ - De-exctitation photons are enabled for 40Ar
+ - Minerva form factors from https://arxiv.org/pdf/2512.14097
diff --git a/config/AR25_31i/TuneGeneratorList.xml b/config/AR25_31i/TuneGeneratorList.xml
new file mode 100644
index 0000000000..938e224062
--- /dev/null
+++ b/config/AR25_31i/TuneGeneratorList.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ 18
+ genie::EventGenerator/QEL-CC
+ genie::EventGenerator/QEL-NC
+ genie::EventGenerator/RES-CC
+ genie::EventGenerator/RES-NC
+ genie::EventGenerator/DIS-CC
+ genie::EventGenerator/DIS-NC
+ genie::EventGenerator/COH-CC-PION
+ genie::EventGenerator/COH-NC-PION
+ genie::EventGenerator/DIS-CC-CHARM
+ genie::EventGenerator/QEL-CC-CHARM
+ genie::EventGenerator/NUE-EL
+ genie::EventGenerator/IMD
+ genie::EventGenerator/IMD-ANH
+ genie::EventGenerator/DFR-CC
+ genie::EventGenerator/DFR-NC
+ genie::EventGenerator/QEL-CC-LAMBDA
+ genie::EventGenerator/MEC-CC
+ genie::EventGenerator/MEC-NC
+
+
+
+
diff --git a/config/AR25_32i/CommonParam.xml b/config/AR25_32i/CommonParam.xml
new file mode 100644
index 0000000000..3aa433ce27
--- /dev/null
+++ b/config/AR25_32i/CommonParam.xml
@@ -0,0 +1,337 @@
+
+
+
+
+
+
+
+
+
+
+
+
+ 1.088962
+ 1.062213
+ 0.838730
+
+
+
+
+
+ 0.501716712132
+ 1.16639E-5
+ 7.2973525332858855E-3
+
+
+
+
+ 0.804
+ 0.463
+
+
+
+
+
+
+ 0.97417
+ 0.2248
+ 0.220
+ 0.995
+
+ 0.227780466682
+
+
+
+
+
+
+ 1.4
+ 3.0
+
+
+
+
+ 1.430
+
+
+
+
+
+ true
+ 1.809000
+
+
+
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.030802
+ 2.338338
+ 0.300
+ 1.000
+ 0.300
+ 1.000
+ 0.008
+ 0.943153
+ 0.100
+ 1.000
+ 0.100
+ 1.000
+
+
+
+
+
+ 0.0001
+ 0.0150
+ 0.0150
+ 0.0200
+ 0.0160
+ 0.0250
+ 0.0280
+ 0.0280
+ 0.0230
+ 0.0300
+ 0.0280
+ 0.0310
+ 0.0310
+ false
+
+
+ SuSA
+
+
+
+
+
+
+ 1.000
+
+
+ 0.000
+ 1.000
+
+
+ 0.250
+
+
+
+
+
+
+
+ 7.0
+
+
+ 0.35
+
+
+
+
+
+ -1.2754
+
+
+ 0.994989
+ 0.840
+
+
+
+
+
+ 2.7930
+ -1.913042
+
+
+
+
+
+ 2.0
+
+
+
+
+ genie::BBA07ELFormFactorsModel/Default
+
+
+ false
+ genie::TransverseEnhancementFFModel/Default
+
+
+
+
+
+
+ P33(1232),S11(1535),D13(1520),S11(1650),D13(1700),D15(1675),
+ S31(1620),D33(1700),P11(1440),P33(1600),P13(1720),F15(1680),
+ P31(1910),P33(1920),F35(1905),F37(1950),P11(1710)
+
+
+
+
+
+ false
+
+
+
+
+
+
+ 0.1
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.0
+ 1.441
+ 0.1349766
+ 0.547862
+ 0.827
+ -0.38
+ -0.0427
+
+
+
+
+
+
+ 2.30
+ 3.00
+
+
+
+
+ genie_pdg_table.txt
+
+
+
+
+
+
+ 0.010
+ 1000.000
+
+
+
+
+
+
diff --git a/config/AR25_32i/MECInteractionListGenerator.xml b/config/AR25_32i/MECInteractionListGenerator.xml
new file mode 100644
index 0000000000..a6ea945a66
--- /dev/null
+++ b/config/AR25_32i/MECInteractionListGenerator.xml
@@ -0,0 +1,47 @@
+
+
+
+
+
+
+
+
+
+ false
+ true
+
+
+
+
+
+
+ true
+ false
+ false
+
+
+
+ false
+ true
+ false
+
+
+
+ false
+ false
+ true
+
+
+
+
diff --git a/config/AR25_22i/ModelConfiguration.xml b/config/AR25_32i/ModelConfiguration.xml
similarity index 94%
rename from config/AR25_22i/ModelConfiguration.xml
rename to config/AR25_32i/ModelConfiguration.xml
index 848c6303c7..f733f9a2b5 100644
--- a/config/AR25_22i/ModelConfiguration.xml
+++ b/config/AR25_32i/ModelConfiguration.xml
@@ -39,11 +39,11 @@ University of Liverpool
-
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
- genie::SpectralFunc/Default
+
+ genie::SpectralFunc/ApproxElements
+
+ genie::SpectralFunc/ApproxElements
+ genie::SpectralFunc/ApproxElements
+
- genie::HybridXSecAlgorithm/CRPA-QEL
+
+ genie::NievesQELCCPXSec/ZExpNoRPA_lqcd
+
+
genie::AhrensNCELPXSec/Default
genie::RosenbluthPXSec/Default
diff --git a/config/AR25_32i/NucDeExcitationSim.xml b/config/AR25_32i/NucDeExcitationSim.xml
new file mode 100644
index 0000000000..d9029fd755
--- /dev/null
+++ b/config/AR25_32i/NucDeExcitationSim.xml
@@ -0,0 +1,20 @@
+
+
+
+
+
+
+
+ true
+ true
+
+
+
diff --git a/config/AR25_32i/README.md b/config/AR25_32i/README.md
new file mode 100644
index 0000000000..340f51982d
--- /dev/null
+++ b/config/AR25_32i/README.md
@@ -0,0 +1,16 @@
+# SBN tune
+
+This configuration is based upon AR23_20i_00_000 but has modifications
+requested in summer 2025 by the Short Baseline Neutrino program experiments.
+
+Notable components of the physics model are the following:
+ - Valencia model for 1p1h, using z-expansion, with RPA turned off
+ - SuSAv2 model for 2p2h
+ - Spectral function for select nuclei, including one for 40Ar based on JLab
+ measurements (see https://doi.org/10.1103/PhysRevD.105.112002
+ and https://doi.org/10.1103/PhysRevD.107.012005)
+ - Other nuclei use the AR23_20i_00_000 "spectral-function-like approach" for LFG
+ - The parameters related to pion production are taken from the G18_10a_02_11b
+ tune in order to ensure a better starting point.
+ - De-exctitation photons are enabled for 40Ar
+ - LQCD form factors from https://arxiv.org/pdf/2512.14097
diff --git a/config/AR25_32i/TuneGeneratorList.xml b/config/AR25_32i/TuneGeneratorList.xml
new file mode 100644
index 0000000000..938e224062
--- /dev/null
+++ b/config/AR25_32i/TuneGeneratorList.xml
@@ -0,0 +1,72 @@
+
+
+
+
+
+
+
+ 18
+ genie::EventGenerator/QEL-CC
+ genie::EventGenerator/QEL-NC
+ genie::EventGenerator/RES-CC
+ genie::EventGenerator/RES-NC
+ genie::EventGenerator/DIS-CC
+ genie::EventGenerator/DIS-NC
+ genie::EventGenerator/COH-CC-PION
+ genie::EventGenerator/COH-NC-PION
+ genie::EventGenerator/DIS-CC-CHARM
+ genie::EventGenerator/QEL-CC-CHARM
+ genie::EventGenerator/NUE-EL
+ genie::EventGenerator/IMD
+ genie::EventGenerator/IMD-ANH
+ genie::EventGenerator/DFR-CC
+ genie::EventGenerator/DFR-NC
+ genie::EventGenerator/QEL-CC-LAMBDA
+ genie::EventGenerator/MEC-CC
+ genie::EventGenerator/MEC-NC
+
+
+
+
diff --git a/config/LwlynSmithFFCC.xml b/config/LwlynSmithFFCC.xml
index 6d19b72d44..8d225ce30f 100644
--- a/config/LwlynSmithFFCC.xml
+++ b/config/LwlynSmithFFCC.xml
@@ -44,6 +44,16 @@ SU3-F double No Co
+
+ genie::ZExpAxialFormFactorModel/minerva
+
+
+
+
+ genie::ZExpAxialFormFactorModel/lqcd
+
+
+
genie::MArunAxialFormFactorModel/Default
diff --git a/config/NievesQELCCPXSec.xml b/config/NievesQELCCPXSec.xml
index 87b49568a2..3f2bfd16ec 100644
--- a/config/NievesQELCCPXSec.xml
+++ b/config/NievesQELCCPXSec.xml
@@ -87,4 +87,22 @@ RmaxMode string Yes Method to use to comput
false
+
+ genie::LwlynSmithFFCC/ZExp_minerva
+ false
+
+
+
+ genie::LwlynSmithFFCC/ZExp_minerva
+
+
+
+ genie::LwlynSmithFFCC/ZExp_lqcd
+ false
+
+
+
+ genie::LwlynSmithFFCC/ZExp_lqcd
+
+
diff --git a/config/SpectralFunc.xml b/config/SpectralFunc.xml
index 063a8f32c1..e65543214f 100644
--- a/config/SpectralFunc.xml
+++ b/config/SpectralFunc.xml
@@ -34,4 +34,8 @@ FermiMomentumTable string No Table of Fermi momentum (kF) constan
+
+ true
+
+
diff --git a/config/ZExpAxialFormFactorModel.xml b/config/ZExpAxialFormFactorModel.xml
index b95d547539..d3e04c8c1a 100644
--- a/config/ZExpAxialFormFactorModel.xml
+++ b/config/ZExpAxialFormFactorModel.xml
@@ -43,9 +43,40 @@ QEL-Q4limit bool Yes 1/Q^4 limit conditions GPL value: QEL-Q4limit
2.3
+
+
+
+
+ QuasiElastic
+ true
+ 2
+
+ -0.5
+ 0.161604
+
+ 1.64778080
+ -0.94181417
+
+
+
+ QuasiElastic
+
+ true
+ 2
+
+ -0.5
+ 0.161604
+
+ 1.72089706
+ -0.30982708
+
+
+
+
+
diff --git a/do_configure.sh b/do_configure.sh
new file mode 100644
index 0000000000..67f7698c28
--- /dev/null
+++ b/do_configure.sh
@@ -0,0 +1,28 @@
+#!/bin/bash
+
+source ../genie_env.sh
+
+./configure \
+ --enable-gsl \
+ --enable-geant4 \
+ --enable-rwght \
+ --with-lhapdf6-lib=${LHAPDF_LIB} \
+ --with-lhapdf6-inc=${LHAPDF_INC} \
+ --disable-lhapdf5 \
+ --enable-lhapdf6 \
+ --with-optimiz-level=O2 \
+ --with-log4cpp-inc=${LOG4CPP_INC} \
+ --with-log4cpp-lib=${LOG4CPP_LIB} \
+ --with-libxml2-inc=${LIBXML2_INC} \
+ --with-libxml2-lib=${LIBXML2_LIB} \
+ --enable-pythia8 \
+ --disable-pythia6 \
+ --enable-hepmc3 \
+ --enable-incl \
+ --enable-gfortran \
+ --enable-atmo \
+ --with-incl-inc=${INCLXX_FQ_DIR}/include/inclxx \
+ --with-incl-lib=${INCLXX_FQ_DIR}/lib \
+ --with-boost-inc=${BOOST_FQ_DIR}/include \
+ --with-boost-lib=${BOOST_FQ_DIR}/lib \
+ --with-pythia6-lib=${PYTHIA_LIB}
diff --git a/src/Framework/Conventions/KinePhaseSpace.h b/src/Framework/Conventions/KinePhaseSpace.h
index ef211a8964..523835719d 100644
--- a/src/Framework/Conventions/KinePhaseSpace.h
+++ b/src/Framework/Conventions/KinePhaseSpace.h
@@ -38,6 +38,7 @@ typedef enum EKinePhaseSpace {
kPSlogyfEx,
kPSxyfE,
kPSlogxlogyfE,
+ kPSxQ2fE,
kPSQ2fE,
kPSQD2fE,
kPSlogQ2fE,
@@ -68,7 +69,6 @@ typedef enum EKinePhaseSpace {
kPSTAfE,
kPSEgTlOgfE,
kPSDMELEvGen, // Equivalent to kPSQELEvGen for Dark Matter scattering
- kPSxQ2fE,
kPSlog10xlog10Q2fE,
kPSEDNufE, // Used for Dark Neutrinos, two body final state
kPSn1n2fE,
diff --git a/src/Physics/NuclearState/SpectralFunc.cxx b/src/Physics/NuclearState/SpectralFunc.cxx
index 18ebfc222a..10d4395c43 100644
--- a/src/Physics/NuclearState/SpectralFunc.cxx
+++ b/src/Physics/NuclearState/SpectralFunc.cxx
@@ -32,19 +32,9 @@
#include "Framework/Messenger/Messenger.h"
#include "Physics/NuclearState/SpectralFunc.h"
#include "Framework/ParticleData/PDGCodes.h"
+#include "Framework/ParticleData/PDGUtils.h"
#include "Framework/Numerical/RandomGen.h"
-namespace {
-
- // TODO: Replace this with std::to_string when we switch to C++11
- std::string replace_with_std_to_string(int an_integer) {
- std::ostringstream oss;
- oss << an_integer;
- return oss.str();
- }
-
-}
-
using namespace genie;
using namespace genie::constants;
using namespace genie::controls;
@@ -63,13 +53,7 @@ SpectralFunc::SpectralFunc(string config) :
//____________________________________________________________________________
SpectralFunc::~SpectralFunc()
{
- // Delete the TH2D objects from the spectral function map
- std::map, TH2D*>::iterator begin = fSpectralFunctionMap.begin();
- std::map, TH2D*>::iterator end = fSpectralFunctionMap.end();
- for (std::map, TH2D*>::iterator iter = begin; iter != end; ++iter) {
- TH2D* hist = iter->second;
- if ( hist ) delete hist;
- }
+ fSpectralFunctionMap.clear();
}
//____________________________________________________________________________
bool SpectralFunc::GenerateNucleon(const Target& target) const
@@ -198,6 +182,8 @@ void SpectralFunc::LoadConfig(void)
}
fDataPath = data_path;
+
+ this->GetParamDef( "AllowElementMatch", fAllowElementMatch, false );
}
//____________________________________________________________________________
TH2D* SpectralFunc::SelectSpectralFunction(const Target& t) const
@@ -210,16 +196,95 @@ TH2D* SpectralFunc::SelectSpectralFunction(const Target& t) const
if ( my_iter != fSpectralFunctionMap.end() ) return my_iter->second;
// If not, attempt to build it
- std::string target_pdg_string = replace_with_std_to_string( target_pdg );
- std::string hitnuc_pdg_string = replace_with_std_to_string( hitnuc_pdg );
+ std::string target_pdg_string = std::to_string( target_pdg );
+ std::string hitnuc_pdg_string = std::to_string( hitnuc_pdg );
RgKey sf_key( "SpectFuncTable@Pdg=" + target_pdg_string + "_" + hitnuc_pdg_string );
std::string data_filename;
this->GetParamDef( sf_key, data_filename, std::string() );
if ( data_filename.empty() ) {
- LOG("SpectralFunc", pERROR) << "** The spectral function for target "
+ LOG("SpectralFunc", pNOTICE) << "** The spectral function for target "
<< target_pdg << " and hit nuc PDG " << hitnuc_pdg << " isn't available";
+
+ // If element matching is enabled, then check for a spectral function with
+ // the same proton number Z as the requested nuclide.
+ if ( fAllowElementMatch ) {
+
+ // Get the proton number for the requested target nuclide
+ int tZ = genie::pdg::IonPdgCodeToZ( target_pdg );
+
+ // Not all configured spectral functions may have been built yet, so rely
+ // on the owned Registry to see if a suitable definition exists in the
+ // Algorithm configuration
+ const auto& conf_map = this->GetConfig().GetItemMap();
+
+ // Search the configuration for a matching proton number Z and matching
+ // hit nucleon PDG code. Store the nuclear PDG code for the result if
+ // we find a match.
+ int element_match_pdg;
+ auto iter = std::find_if( conf_map.cbegin(), conf_map.cend(),
+ [ tZ, hitnuc_pdg, &element_match_pdg ]( const auto& conf_pair ) -> bool {
+ const std::string prefix = "SpectFuncTable@Pdg=";
+ const std::size_t prefix_size = prefix.size();
+
+ // Check that the current config key begins with the exact prefix above
+ const auto& key = conf_pair.first;
+ // If not, then it cannot be a match
+ if ( key.compare(0, prefix_size, prefix) != 0 ) return false;
+
+ // Find an underscore following the prefix
+ size_t underscore_pos = key.find( '_', prefix_size );
+ // If there is no underscore, then the current key is not a match
+ if ( underscore_pos == std::string::npos ) return false;
+
+ // Extract the string between the prefix and the underscore. Assume
+ // it is a string representation of a nuclear PDG code
+ std::string tgt_pdg_str = key.substr( prefix_size,
+ underscore_pos - prefix_size );
+
+ // Also extract the remainder of the string following the underscore.
+ // Assume it is a string representation of a nucleon PDG code
+ std::string nucleon_pdg_str = key.substr( underscore_pos + 1u );
+
+ // Convert the string representations to integers
+ int tgt_pdg = std::stoi( tgt_pdg_str );
+ int nucleon_pdg = std::stoi( nucleon_pdg_str );
+
+ // Extract the proton number for the current nuclide
+ int target_Z = genie::pdg::IonPdgCodeToZ( tgt_pdg );
+
+ if ( hitnuc_pdg == nucleon_pdg && tZ == target_Z ) {
+ element_match_pdg = tgt_pdg;
+ return true;
+ }
+ return false;
+ }
+ );
+
+ // If a match was found, use it to approximate the spectral function for
+ // the current nuclide of interest
+ if ( iter != conf_map.end() ) {
+ LOG("SpectralFunc", pNOTICE) << "Approximating the spectral function"
+ << " for target " << target_pdg << " with the one for target "
+ << element_match_pdg;
+
+ // Use recursion to retrieve or build the spectral function for the
+ // nuclide with the matching proton number
+ genie::Target temp_tgt( element_match_pdg );
+ temp_tgt.SetHitNucPdg( hitnuc_pdg );
+ TH2D* sf_ptr = this->SelectSpectralFunction( temp_tgt );
+
+ // Add an entry for the current nuclide to the map so we don't have to do
+ // the Z-based search again
+ fSpectralFunctionMap[ std::make_pair( hitnuc_pdg, target_pdg ) ] = sf_ptr;
+ return sf_ptr;
+ }
+ }
+
+ // Fail with an error if the user requests a spectral function that
+ // is not available
+ LOG("SpectralFunc", pERROR) << "Failed to load spectral function data";
std::exit( 1 );
}
diff --git a/src/Physics/NuclearState/SpectralFunc.h b/src/Physics/NuclearState/SpectralFunc.h
index d7c57da4a4..21006c0c0b 100644
--- a/src/Physics/NuclearState/SpectralFunc.h
+++ b/src/Physics/NuclearState/SpectralFunc.h
@@ -81,6 +81,11 @@ class SpectralFunc : public NuclearModelI {
/// The number of removal energy bins to use when making spectral function
/// histograms
int fNumYBins;
+
+ /// If this flag is true, then a cached spectral function with the same
+ /// proton number Z will be used when a perfect match is not available
+ /// for the requested nuclide.
+ bool fAllowElementMatch = false;
};
} // genie namespace
diff --git a/src/Physics/QuasiElastic/XSection/NievesQELCCPXSec.cxx b/src/Physics/QuasiElastic/XSection/NievesQELCCPXSec.cxx
index 42f9943856..446c55ef1e 100644
--- a/src/Physics/QuasiElastic/XSection/NievesQELCCPXSec.cxx
+++ b/src/Physics/QuasiElastic/XSection/NievesQELCCPXSec.cxx
@@ -922,11 +922,35 @@ int NievesQELCCPXSec::leviCivita(int input[]) const{
// Calculates the constraction of the leptonic and hadronic tensors. The
// expressions used here are valid in a frame in which the
// initial nucleus is at rest, and qTilde must be in the z direction.
-double NievesQELCCPXSec::LmunuAnumu(const TLorentzVector neutrinoMom,
-const TLorentzVector inNucleonMomOnShell, const TLorentzVector leptonMom,
-const TLorentzVector qTildeP4, double M, bool is_neutrino,
+double NievesQELCCPXSec::LmunuAnumu(const TLorentzVector neutrinoMom1,
+const TLorentzVector inNucleonMomOnShell1, const TLorentzVector leptonMom1,
+const TLorentzVector qTildeP41, double M, bool is_neutrino,
const Target& target, bool assumeFreeNucleon) const
{
+ // copy the const value to do the transfermation
+ TLorentzVector neutrinoMom = neutrinoMom1;
+ TLorentzVector inNucleonMomOnShell = inNucleonMomOnShell1;
+ TLorentzVector qTildeP4 = qTildeP41;
+ TLorentzVector leptonMom = leptonMom1;
+
+ // Boost to nucleon rest frame to calculate the nucleon rest frame cross section
+ TVector3 beta = -1.0 * inNucleonMomOnShell.BoostVector(); // boost from lab to nucRest
+ neutrinoMom.Boost(beta);
+ leptonMom.Boost(beta);
+ qTildeP4.Boost(beta);
+ inNucleonMomOnShell.Boost(beta);
+
+ // Find the rotation angle needed to put q3VecTilde along z
+ TVector3 zvec(0.0, 0.0, 1.0);
+ TVector3 rot = ( qTildeP4.Vect().Cross(zvec) ).Unit(); // Vector to rotate about
+
+ // Angle between the z direction and q
+ double angle = zvec.Angle( qTildeP4.Vect() );
+ neutrinoMom.Rotate(angle, rot);
+ leptonMom.Rotate(angle, rot);
+ qTildeP4.Rotate(angle, rot);
+ inNucleonMomOnShell.Rotate(angle, rot);
+
double r = target.HitNucPosition();
bool tgtIsNucleus = target.IsNucleus();
int tgt_pdgc = target.Pdg();