| Summary: | Possible issue with Kaon absorption cross-section | ||
|---|---|---|---|
| Product: | Geant4 | Reporter: | Stefan Ghinescu <stefan.alexandru.ghinescu> |
| Component: | processes/hadronic/processes | Assignee: | Alberto.Ribon |
| Status: | RESOLVED FIXED | ||
| Severity: | minor | ||
| Priority: | P4 | ||
| Version: | 10.7 | ||
| Hardware: | All | ||
| OS: | All | ||
| Attachments: |
absorption cross-section for positive kaons of 60 GeV incident on various materials
absorption cross-section for protons of 60 GeV incident on various materials absorption cross-section for positive pions of 60 GeV incident on various materials |
||
|
Description
Stefan Ghinescu
2021-06-10 06:39:58 CEST
Created attachment 699 [details]
absorption cross-section for protons of 60 GeV incident on various materials
Created attachment 700 [details]
absorption cross-section for positive pions of 60 GeV incident on various materials
Hello, yes, uncertainties of 10-20% are typical for hadronic cross sections. The hadronic cross sections in Monte Carlo transport codes, such as Geant4, are usually theory-driven parameterizations, i.e. with phenomenogical parameters which are derived from available experimental data. For instance, the Geant4 hadron-nuclear cross sections follow a Glauber-Gribov approach. This approach should have a good "prediction power" for the * relative * energy dependence of the cross sections of hadron-nucleus interactions, i.e. the dependence on the projectile hadron kinetic energy or momentum, especially for the range where you are interested in, i.e. 10-400 GeV. The * absolute * precision of this approach depends strongly on the available experimental data. There are more experimental data for protons than pions, and even less for kaons, that's why a ~10% uncertainty for proton-nuclear cross sections seems reasonable, while for kaons ~15-20% seems more realistic (with pions sitting in between protons and kaons). The physical quantity you are interested in, i.e. the flux of 10-400 GeV kaons in a 3 meters long copper absorber, is very much dependent on the kaon-copper absorber cross sections. From what said above, this implies a very large uncertainty on the result that you can get from Geant4 - or in any other Monte Carlo transportation code. If you would like to use the measurement made by Carroll et al. on the absorption cross section of kaons on copper - instead of the default one in Geant4 - to get the "central" estimate for the quantity you are interested in, you can do this by using the method: G4HadronicParameters::SetXSFactorHadronInelastic( scalingFactor ); where the "scalingFactor" is the value used to scale up the default cross section of Geant4. In other words, if the value of Geant4 absorption cross sections for 60 GeV K+ on copper that you get is 10% higher than what is measured by Carroll, then you should use: G4HadronicParameters::SetXSFactorHadronInelastic( 0.90 ); Hello! Thank you for the detailed response! I was thinking to change the absorption part while leaving the quasi-elastic untouched (by means of G4ProcessWrapper), but what you propose is much more straight-forward so I will give that a shot first. Just a few information on the hadron-nuclear cross sections in Geant4. In general, Geant4 deals only with elastic hadron-nuclear cross sections, and inelastic hadron-nuclear cross sections. Most of the physics lists, like FTFP_BERT, QGSP_BERT, etc. have the same elastic and inelastic hadron-nuclear cross sections. Quasi-elastic, instead, is treated differently by the two hadronic string models, FTF (Fritiof) - used for instance in FTFP_BERT - and QGS (Quark Gluon String) - used for instance in QGSP_BERT. In FTF, quasi-elastic events are produced one or more pure elastic scattering of the hadron projectile with nucleons of the target nucleus. There is no "quasi-elastic" cross section. Instead, a fraction of the inelastic cross section is used by FTF to produce quasi-elastic events. Therefore, setting quasi-elastic for FTFP_BERT does nothing. In QGS, an explicit fraction of the inelastic cross section is computed (if the quasi-elastic flag is set) and used to create single elastic hadron-nucleon interactions - by a different model, not directly by QGS. In other words, QGS does only the pure "production" or "absorption" inelastic events, whereas a different model handles the quasi-elastic events - by computing the fraction of inelastic cross section which is for quasi-elatic event, as well as producing the quasi-elastic final-state. In conclusion, "quasi-elastic" is not a trivial business in Geant4, and it is better to scale the overall inelastic cross section - in the way I have suggested in my previous post. Thank you for the clarifications! I will try the method you proposed! A couple of details that I forgot. It is not enough the line that I wrote above, but you need both of the following lines: G4HadronicParameters::Instance()->SetApplyFactorXS( true ); G4HadronicParameters::Instance()->SetXSFactorHadronInelastic( 0.90 ); which could be placed, for instance, in your main program, and must be executed before the run initialization. Please note that, for the time being, there is no equivalent UI commands to scale cross sections, so the only way is via the above C++ code. |