-
Notifications
You must be signed in to change notification settings - Fork 1
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
Document the differences between current LDMX Geant4 Bertini and upstream #12
Comments
Changes between LDMX 10.2.3 and Geant4 10.2.3 (NU = Not upstreamed), (LP = Not upstreamed but can be patched in ldmx-sw), (UP = Upstreamed)
// In
// Final state multiplicity has been determined to be 2 in G4CascadeFinalStateAlgorithm::Configure
// Otherwise, fs =0
// In G4CascadeFinalStateAlgorithm::ChooseGenerators
if((is == gam*pro || is == gam*neu) &&
(kinds[0]==pro || kinds[0]==neu) &&
(kinds[1]==pip || kinds[1]==pim || kinds[1]==pi0))
kw = -1; // NT: backscatter case
// In G4TwoBodyAngularDist::ChooseDist
if (((is == gam*pro || is == gam*neu) &&
(fs == pro*pim || pro*pi0 || neu*pi0 || neu*pip)) && kw== -1) {
return gp_npiback;
} Here,
typedef G4CascadeData<30,6,6,4,5,6,7,7,7> data_t;
typedef G4CascadeData<30,8,6,4,5,6,7,7,7> data_t;
...
// G4CascadeData
template <int NE,int N2,int N3,int N4,int N5,int N6,int N7,int N8=0,int N9=0>
const G4int (&x2bfs)[N2][2]; // Initialized from file-scope inputs
The cross-section for this backscatter case is // p pi0 ( = n pi0 ) backscatter -- from integral of Anderson 1969 data. Start at 2.4 GeV
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1.5e-4, 6.4e-5, 2.85e-5, 1.2e-5, 5.0e-6 , 2.1e-6, 9.6e-7, 3.6e-7, 1.5e-7, 6.4e-8},
// n pi+ ( = p pi- ) backscatter -- from integral of Anderson 1969 data. Start at 2.4 GeV
{0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0,
1.5e-4, 6.4e-5, 2.85e-5, 1.2e-5, 5.0e-6 , 2.1e-6, 9.6e-7, 3.6e-7, 1.5e-7, 6.4e-8},
This change would be straight-forward to add to upstream Geant4, but might have been introduced elsewhere.
LDMX description:
Geant4 11.2.0
The thickness is used to calculate Where Boundary transition then carries out as follows
The effective number of quasi-deutrons,
Below is the output from an example
|
The following is a listing of all non-trivial changes to Bertini between 10.2.3 and latest
Potentially relevant
if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pip) || should have been if ((is == pim*pro && fs == pi0*neu) || (is == pip*neu && fs == pi0*pro) ||
|
The Bertini cascade is a crucial part of our simulations, we should make sure that the differences between what is in this repository and upstream Geant4 is clear to any users without requiring them to read through the Geant4 source code. The changes are detailed in Appendix A of https://arxiv.org/pdf/1808.05219.pdf but we know that some of these have been upstreamed into regular Geant4.
Some Bertini particle identifiers used below
pro = 1
neu = 2
pip = 3
pim = 5
pi0 = 7
gam = 9
kpl = 11
kmi = 13
k0 = 15
k0b = 17
The text was updated successfully, but these errors were encountered: