GRIFFINCollaboration / detectorSimulations

GEANT4 simulation code for the GRIFFIN array and it's suite of ancillary detection systems.
7 stars 13 forks source link

detectorSimulations code currently not compatible with Geant4 version 10.0 #59

Open evan012345 opened 10 years ago

evan012345 commented 10 years ago

Hi Everyone,

For kicks I tried to compile the detectorSimulations code using the latest version of Geant4 (10.0). There are many changes in Geant4.10.0 which prevents our code from compiling. I don't think there are any major issues, just a number of small ones.

This is what I've found so far:

  1. The following headers have been removed from globals.hh. // Includes Physical Constants and System of Units

    include "G4PhysicalConstants.hh"

    include "G4SystemOfUnits.hh"

    Any .cc and/or .hh files which need either constants or units would need to explicitly #include whichever of those files they need. This is kinda a pain in the butt since nearly every file needs units (eg. keV, mm, ...) or contants (eg. pi, e, ...). That would mean putting both #include statements in the .hh files.

  2. The hadron physics lists names have changed from HadronPhysics... to G4HadronPhysics... We don't normally need the hadron physics lists but since they are defined in our PhysicsList we have to either remove it or change the names.
  3. Some of the EM scattering models have been removed. A single G4UrbanMscModel class provides the improved tuning of the Urban multiple-scattering model. It replaces all previous variants of the Urban model (Urban90, 93, 95 and 96), which have been removed.

I stopped trying to compile at 3 and went back to version Geant4.9.6.p02. Until we need the new features of version 10.0 (such as multi-threading) I suggest we stick to 9.6.p02. When we do switch, I suggest we all make the transition together and run the code on the same version of Geant4.

Thoughts?

Cheers, Evan

evan012345 commented 10 years ago

The Release Notes for the latest version can be found here: http://geant4.cern.ch/support/ReleaseNotes4.10.0.html

bkatiemills commented 10 years ago

Cool, thanks for keeping on top of this! In general, being one stable release behind is not so terrible - but more than that is unacceptable. I think we need to move to 10 as soon as we can do so without being overly disruptive because of exactly what you mention - multiple scattering (and probably a ton of other stuff) has been tuned up for 10; we should be taking advantage of those improvements ASAP, not just when we get our arms twisted into it by needing an entirely new feature.

That being said, we aren't so far behind that we can't wait a little for an auspicious time; I think everyone (@christinaburbadge, @r3dunlop and @evan012345) should finish their present projects on our stable(ish) current version, and then we can move to 10.0 when things are a bit more settled. If this becomes blocking, we can make the necessary modifications on a development branch and merge when appropriate.

Either way, we absolutely must be caught up to 10.0 before major production simulations for GRIFFIN are undertaken; users will duly expect the best models available, and we need to deliver on that.

So far, the obstacles to doing this don't sound too terrible; I would like to see this package 10.0-ready by the end of March, so we still have plenty of time to tinker before GRIFFIN startup.

evan012345 commented 10 years ago

FYI:

A correction patch "patch01" to be applied to release 10.0 of Geant4 is now available and can be downloaded from the Geant4 web site: http://cern.ch/geant4/support/download.shtml

This patch collects a set of bug fixes introduced since last release 10.0 of December. For a complete summary of the fixes introduced since last patch, see the notes at: http://cern.ch/geant4/support/Patch4.10.0-1.txt

To install the patch, just uncompress the archive "patch_geant4.10.00.p01" in your Geant4 installation area where the directory geant4.10.00 is placed, and recompile from scratch all libraries. Alternatively, you can download the whole source tree including also the patch ("geant4.10.00.p01" archive).

Pre-compiled binaries for the supported systems are available from the web site, as well.

bkatiemills commented 10 years ago

Thanks Evan - clearly the dust is still settling on 10.0. I still want this package up to speed for the latest GEANT, but I'm comfortable waiting for a couple of months of more shakedown on their end first.