Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Dynamic coupled channels model by Toru Sato #292

Open
wants to merge 38 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from 37 commits
Commits
Show all changes
38 commits
Select commit Hold shift + click to select a range
a89ca26
begining of work on DCC
Jun 27, 2022
7c179b7
rename files
Jun 27, 2022
c24bceb
continue change spp
Jun 27, 2022
547b6de
change spp channel definitions and methods
Jun 27, 2022
d765d44
revert sign of Clebsch–Gordan coefficients to wrong ones just for con…
Jun 28, 2022
ab106ef
add single pion scattering type
Aug 3, 2022
5c0e3f2
minute changes
Aug 4, 2022
4d015c5
save current work
Aug 15, 2022
73455c6
save progress
Aug 18, 2022
d07539a
save current work
Aug 24, 2022
03b7436
save current work
Aug 27, 2022
f2c668e
savr current work
Aug 28, 2022
baafe0a
save current work
Aug 29, 2022
89a5120
save current work
Aug 29, 2022
c979983
save current work
Aug 30, 2022
c1cd010
save current work
Aug 31, 2022
a836775
save current work
Sep 1, 2022
64bec6e
save current work
Sep 4, 2022
0decfc3
save current work
Sep 4, 2022
f599359
fix very small energy case
Oct 20, 2022
f87308d
use literal for imaginary unit
Oct 21, 2022
03aa8d1
change integrator parameters
Oct 21, 2022
c6572fb
change integration accuracy
Oct 22, 2022
b24e1f9
change formatting
Oct 23, 2022
f45a484
small changes
Oct 23, 2022
100b2bd
take into account the non-isoscalar nature of nucleons, but this is w…
Apr 9, 2023
9155faf
implement XSec DCC class, everything is compiled
Apr 22, 2023
d51c893
add some rearranges
Apr 23, 2023
87521fe
fix SPP kinematics
Apr 26, 2023
bfad77e
implement DXsec algorithm for DCC
Jun 8, 2023
4c9afa0
add dcc integrator
Jun 9, 2023
726f8de
add comment
Jun 10, 2023
045cb32
fix factor for massless lepton case
Jun 12, 2023
e65e972
fix mistake
Jun 12, 2023
3c9242f
Merge branch 'master' into DCC_Sato
idkakorin Jun 15, 2023
acfcb39
Merge branch 'master' into DCC_Sato
idkakorin Jul 7, 2023
6f830fc
Merge branch 'master' into DCC_Sato
idkakorin Feb 14, 2024
1fedf8f
sync with master
idkakorin Feb 14, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
158 changes: 158 additions & 0 deletions config/DCC22_00a/ModelConfiguration.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,158 @@
<?xml version="1.0" encoding="ISO-8859-1"?>

<global_param_list>

<!--
***************************************************************************************************
This file defines defaults for the most important GENIE physics user configuration parameters.
Multilple named lists of user physics options can be defined.
Use the "Default" one to get the standard/default GENIE physics & tuning.

Author:
Costas Andreopoulos <costas.andreopoulos \at stfc.ac.uk>
STFC, Rutherford Appleton Laboratory
***************************************************************************************************
-->

<param_set name="Default">


<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nuclear model selection.
Options:
- genie::FGMBodekRitchie/Default
- genie::LocalFGM/Default
- genie::SpectralFunc1d/Default
- genie::EffectiveSF/Default <- See http://arxiv.org/abs/1405.0583
The 'NuclearModel' option defines the default basic model which should work for _any_ nuclei
(typically a Fermi Gas model with the Bodek-Ritchie NN corellatin tail). Refinements for specific
nuclei are possible, by specifying the 'NuclearModel@Pdg=10LZZZAAAI' option.
Currently the same nuclear model is forced for all isotopes.
-->

<!-- <param type="alg" name="NuclearModel"> genie::EffectiveSF/Default </param> -->
<param type="alg" name="NuclearModel"> genie::FGMBodekRitchie/Default </param>
<!-- <param type="alg" name="NuclearModel"> genie::LocalFGM/Default </param> -->


<!--
Example of specific model for specific nuclei
<param type="alg" name="NuclearModel@Pdg=1000060120"> genie::SpectralFunc1d/Default </param>
<param type="alg" name="NuclearModel@Pdg=1000260560"> genie::SpectralFunc1d/Default </param>
-->


<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Intranuclear rescattering
Use the HadronTransportEnable option to toggle intranuclear rescattering on/off.
Also, set the preferred hadron transport model.
Options include:
- genie::HAIntranuke/Default
- genie::HAIntranuke2018/Default
- genie::HNIntranuke2018/Default
- genie::HNIntranuke2018/OsetOff
-->
<param type="bool" name="HadronTransp-Enable"> true </param>
<param type="alg" name="HadronTransp-Model"> genie::HAIntranuke2018/Default </param>


<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Specify which cross section model is to be used by each GENIE event generation thread.
The parameter name is build as: "XSecModel@[name of thread]"
-->
<!-- New Nieves QE model
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-CC"> genie::NievesQELCCPXSec/DipoleELFF </param>
-->
<!-- <param type="alg" name="XSecModel@genie::EventGenerator/QEL-CC"> genie::SmithMonizQELCCPXSec/RunningMA </param> -->
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-CC"> genie::LwlynSmithQELCCPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-NC"> genie::AhrensNCELPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-EM"> genie::RosenbluthPXSec/Default </param>

<!-- New Berger-Sehgal resonance model w/MiniBooNE tune... -->
<param type="alg" name="XSecModel@genie::EventGenerator/RES-CC"> genie::BergerSehgalRESPXSec2014/WithPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-NC"> genie::BergerSehgalRESPXSec2014/WithPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-EM"> genie::BergerSehgalRESPXSec2014/WithPauliBlock </param>

<param type="alg" name="XSecModel@genie::EventGenerator/DCCSPP-CC"> genie::DCCSPPPXSec/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DCCSPP-NC"> genie::DCCSPPPXSec/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DCCSPP-EM"> genie::DCCSPPPXSec/NoPauliBlock </param>

<!-- New Kuzmin-Lyubushkin-Naumov resonance model w/MiniBooNE tune... -->
<!--
<param type="alg" name="XSecModel@genie::EventGenerator/RES-CC"> genie::KuzminLyubushkinNaumovRESPXSec2014/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-NC"> genie::KuzminLyubushkinNaumovRESPXSec2014/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-EM"> genie::KuzminLyubushkinNaumovRESPXSec2014/NoPauliBlock </param>
-->

<!-- Historical Rein-Sehgal model -->
<!--
<param type="alg" name="XSecModel@genie::EventGenerator/RES-CC"> genie::ReinSehgalRESPXSec/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-NC"> genie::ReinSehgalRESPXSec/NoPauliBlock </param>
<param type="alg" name="XSecModel@genie::EventGenerator/RES-EM"> genie::ReinSehgalRESPXSec/NoPauliBlock </param>
-->

<param type="alg" name="XSecModel@genie::EventGenerator/DIS-CC"> genie::QPMDISPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DIS-NC"> genie::QPMDISPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DIS-EM"> genie::QPMDISPXSec/Default </param>

<!-- Historical Rein-Sehegal model -->
<!--
<param type="alg" name="XSecModel@genie::EventGenerator/COH-CC"> genie::ReinSehgalCOHPiPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/COH-NC"> genie::ReinSehgalCOHPiPXSec/Default </param>
-->

<!-- BS "Finite-mass" (as opposed to infinite mass) nucleus, slow and not very different from the paper version -->
<!--
<param type="alg" name="XSecModel@genie::EventGenerator/COH-CC"> genie::BergerSehgalFMCOHPiPXSec2015/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/COH-NC"> genie::BergerSehgalFMCOHPiPXSec2015/Default </param>
-->

<!-- Berger-Sehgal "as in the paper" -->
<param type="alg" name="XSecModel@genie::EventGenerator/COH-CC"> genie::BergerSehgalCOHPiPXSec2015/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/COH-NC"> genie::BergerSehgalCOHPiPXSec2015/Default </param>


<!-- Alvarez-Ruso et al COH pion
<param type="alg" name="XSecModel@genie::EventGenerator/COH-CC"> genie::AlvarezRusoCOHPiPXSec/Fast </param>
<param type="alg" name="XSecModel@genie::EventGenerator/COH-NC"> genie::AlvarezRusoCOHPiPXSec/Fast </param>
-->

<param type="alg" name="XSecModel@genie::EventGenerator/IMD"> genie::BardinIMDRadCorPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/IMD-ANH"> genie::IMDAnnihilationPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/NUE-EL"> genie::NuElectronPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-CC-CHARM"> genie::KovalenkoQELCharmPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DIS-CC-CHARM"> genie::AivazisCharmPXSecLO/CC-Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DIS-CC-SINGLEK"> genie::AlamSimoAtharVacasSKPXSec2014/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/QEL-CC-LAMBDA"> genie::PaisQELLambdaPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/AM-NUGAMMA"> genie::H3AMNuGammaPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DFR-CC"> genie::ReinDFRPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/DFR-NC"> genie::ReinDFRPXSec/Default </param>

<!--
<param type="alg" name="XSecModel@genie::EventGenerator/MEC-CC"> genie::NievesSimoVacasMECPXSec2016/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/MEC-CC"> genie::EmpiricalMECPXSec2015/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/MEC-NC"> genie::EmpiricalMECPXSec2015/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/MEC-EM"> genie::EmpiricalMECPXSec2015/Default </param>
-->
<param type="alg" name="XSecModel@genie::EventGenerator/GLRES"> genie::GLRESPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/NucleonDecay"> genie::DummyPXSec/Default </param>
<param type="alg" name="XSecModel@genie::EventGenerator/NNBarOsc"> genie::NNBarOscDummyPXSec/Default </param>


</param_set>

<param_set name="Validation">
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
GENIE validity range
-->
<param type="double" name="GVLD-Emin"> 0.010 </param>
<param type="double" name="GVLD-Emax"> 1.000 </param>

</param_set>


</global_param_list>
57 changes: 57 additions & 0 deletions config/DCC22_00a/TuneGeneratorList.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
<?xml version="1.0" encoding="ISO-8859-1"?>

<tune_generator_list>

<!--

This xml files contains the default configuration for the tune

..........................................................................................................................
NOTE:

The GENIE authors would like to caution users against using anything but a comprehensive
GENIE mode (`Default' setting below) for physics studies.
No detector measures generator-level reaction modes like CCQE or NCRES.
Detectors measure final states / topologies like {1mu-,0pi}, {1mu-,1pi+}, {0mu-, 1pi0},
{1 track, 1 shower}, {1 mu-like ring} etc depending on granularity, thresholds and PID capabilities.
No final state / topology is a proxy for any particular reaction mode.
Intranuclear re-scattering in particular causes significant migration between states
(see Table 8.1 in the Physics and User manual).

Examples:
- {1mu-,0pi} is mostly numuCCQE, but can also be caused by numu resonance production followed by pion absorption.
- numuCCQE gives mostly {1mu-,0pi} but occasionaly can give {1mu-,1pi} if the recoil nucleon re-interacts.
- NC1pi0 final states can be caused by all a) NC elastic followed by nucleon rescattering,
b) NC resonance neutrino-production, c) NC non-resonance background, d) low-W NC DIS
e) NC coherent scattering. Each source contributes differently in the pion momentum distribution.

We also recommend that you treat the generator-level reaction modes largely as as an internal degree of freedom.
Consequently, try to define your selection efficiencies and purities in terms of observable final states _only_.
For example, if you define as `numuCCQE-like' := {1mu-,0pi} then define your selection efficiency
as:
efficiency = (`numuCCQE-like' events passing cuts) / (all true {1mu-,0pi} events)
and not as:
efficiency = (`numuCCQE-like' events passing cuts) / (all true numuCCQE events)

..........................................................................................................................



Configurable Parameters:
..........................................................................................................................
Name Type Opt Comment Default
..........................................................................................................................
NGenerators int No
Generator-%d alg No

-->

<param_set name="Default">
<param type="int" name="NGenerators"> 3 </param>
<param type="alg" name="Generator-0"> genie::EventGenerator/DCCSPP-EM </param>
<param type="alg" name="Generator-1"> genie::EventGenerator/DCCSPP-CC </param>
<param type="alg" name="Generator-2"> genie::EventGenerator/DCCSPP-NC </param>
</param_set>

</tune_generator_list>

48 changes: 48 additions & 0 deletions config/DCCSPPPXSec.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="ISO-8859-1"?>

<alg_conf>

<!--
Configuration for the DCC single pion production algorithm

Configurable Parameters:
......................................................................................................................................
Name Type Optional Comment Default
......................................................................................................................................
DCC-EM-XSecScale double No XSec rescaling factor for EM-processes
DCC-CC-XSecScale double No XSec rescaling factor for CC-processes
DCC-NC-XSecScale double No XSec rescaling factor for NC-processes
WeinbergAngle double No Weinberg Angle CommonParam[WeakInt]
CKM-Vud double No Magnitude of ud-element of CKM-matrix CommonParam[CKM]
RFG-UseParametrization bool No use parametrization for Fermi momentum and binging energy CommonParam[FermiGas]
FermiMomentumTable string No Table of Fermi momentum (kF) constants for various nuclei CommonParam[FermiGas]
XSec-Integrator alg No
DataPath string No Folder in which to look for the table files with amplitudes
DataPathType string Yes Whether the specified path is relative absolute or relative relative
to the root GENIE folder
DataFileName string No Name of file with amplitudes
-->

<param_set name="Default">
<param type="string" name="CommonParam"> WeakInt,CKM,FermiGas </param>
<param type="double" name="DCC-EM-XSecScale"> 1.000 </param>
<param type="double" name="DCC-CC-XSecScale"> 1.000 </param>
<param type="double" name="DCC-NC-XSecScale"> 1.000 </param>
<param type="string" name="DataPath"> data/evgen/dcc </param>
<param type="string" name="DataFileName"> MultipoleAmplitudes.dat </param>
</param_set>

<param_set name="WithPauliBlock">
<param type="alg" name="XSec-Integrator"> genie::DCCSPPXSec/WithPauliBlock </param>
</param_set>


<param_set name="NoPauliBlock">
<param type="alg" name="XSec-Integrator"> genie::DCCSPPXSec/NoPauliBlock </param>
</param_set>



</alg_conf>


55 changes: 55 additions & 0 deletions config/DCCSPPXSec.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
<?xml version="1.0" encoding="ISO-8859-1"?>

<alg_conf>

<!--
Configuration for the DCC SPP xsec algorithm.
This algorithm offers precomputes and caches free nucleon neutrino resonance SPP cross sections.


Algorithm Configurable Parameters:
...........................................................................................................
Name Type Opt Comment Default
...........................................................................................................
MinQ2ForMasslessLepton double Yes Minimal boundary of integration by Q2 for massless 1E-9
lepton in EM processes
UsePauliBlockingForRES bool No Use Pauli blocking for resonance model?
gsl-integration-type string Yes name of GSL numerical integrator adaptive
(adaptive, vegas, miser, plain)
gsl-max-eval int Yes GSL maximal number of function calls 100000
gsl-min-eval int Yes GSL minimal number of function calls 7500
gsl-relative-tolerance double Yes relative tolerance of integration 1e-5
Wcut double Yes cut of W, if negative use kinematically allowed Wmax -1.
ESplineMax double Yes This integrator can cache splines for free nulceons; 250.
these splines have plateauing so for simplicity we
set the maximum to be used here. After that value
we simply use the xsec(E=Emax); value are in GeV
-->


<param_set name="Default">
</param_set>

<param_set name="WithPauliBlock">
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Account for Pauli blocking?
If this option is true, when caching for free nucleons is disabled.
-->
<param type="bool" name="UsePauliBlockingForRES"> true </param>

</param_set>

<param_set name="NoPauliBlock">
<!--
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Account for Pauli blocking?
If this option is true, when caching for free nucleons is disabled.
-->
<param type="bool" name="UsePauliBlockingForRES"> false </param>


</param_set>

</alg_conf>

Loading