celeritas-project / celeritas

Celeritas is a new Monte Carlo transport code designed to accelerate scientific discovery in high energy physics by improving detector simulation throughput and energy efficiency using GPUs.
https://celeritas-project.github.io/celeritas/user/index.html
Other
58 stars 32 forks source link

Set correct energy limits for Coulomb scattering #1266

Closed amandalund closed 3 weeks ago

amandalund commented 3 weeks ago
sethrj commented 2 weeks ago

@amandalund Did you regenerate these using ninja update-four-slabs update-simple-cms with Geant4 11.0.x, or some other way? When I regenerate them on master, I see a warning:

status: Building Geant4 physics tables
/Users/seth/Code/celeritas-temp/src/celeritas/ext/detail/CelerEmStandardPhysics.cc:367: warning: Urban multiple scattering is used for all energies: disabling G4eCoulombScatteringModel
/Users/seth/Code/celeritas-temp/src/celeritas/ext/detail/CelerEmStandardPhysics.cc:367: warning: Urban multiple scattering is used for all energies: disabling G4eCoulombScatteringModel

and then a bunch of failures in the UrbanMsc and ImportProcess tests, including:

/Users/seth/Code/celeritas-temp/test/celeritas/em/UrbanMsc.test.cc:237: Failure
Value of: value_as<MevEnergy>(params.params.high_energy_limit)
  Actual: 1000000
Expected: 1e2
Which is: 100
(Relative error 9999 exceeds tolerance 9.9999999999999998e-13)

and

/Users/seth/Code/celeritas-temp/test/celeritas/ext/RootImporter.test.cc:139: Failure
Expected equality of these values:
  11
  processes.size()
    Which is: 9

and

unknown file: Failure
C++ exception with description "celeritas: runtime error: imported process data is unavalable for PDG{11} (needed for 'coulomb_scat')
/Users/seth/Code/celeritas-temp/src/celeritas/phys/ImportedProcessAdapter.cc:132: 'proc_ids.process' failed" thrown in the test body.
amandalund commented 1 week ago

Some other way... and I used the following physics options:

"coulomb_scattering": true,
"msc": "urban_wentzelvi"
sethrj commented 1 week ago

Thanks @amandalund , this lets the tests pass again:

--- a/test/celeritas/data/four-steel-slabs.geant.json
+++ b/test/celeritas/data/four-steel-slabs.geant.json
@@ -13,14 +13,14 @@
 "apply_cuts": false,
 "lpm": true,
 "max_energy": [
- 1000000.0,
+ 100000000.0,
  "MeV"
 ],
 "min_energy": [
  0.0001,
  "MeV"
 ],
-"msc": "urban",
+"msc": "urban_wentzelvi",
 "rayleigh_scattering": true
 }

but the resulting ROOT files are still 10-30% bigger... according to file the ones in the repo are ROOT file Version 62802 (Compression: 101) and the new ones are ROOT file Version 63002 (Compression: 101), but I'm not sure why that would make them any different in size...