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();