GeometryHistory
Before March 2015, the standard Mu2e geometry file was named:
Mu2eG4/test/geom_01.txt
and the module that interfaced to Geant4 was called:
Mu2eG4/src/G4_module.cc
For historical reasons most of the run-time configurable parameters of G4_module were put into the geometry file. For a long time we wanted to move these parameters from the geometry file and put them into the fcl parameter set of G4_module.
In March 2105 a new module was created,
Mu2eG4/src/Mu2eG4_module.cc
At this point G4_module was frozen and future improvments were made in Mu2eG4_module. In Mu2eG4_module, the non-geometry parameters were moved out of the geometry file and into the fcl parameter set used to configure the module.
For a while both modules co-existed. To support this, the geometry file geom_01.txt was split into two pieces so that it was reduced to two lines:
#include "Mu2eG4/geom/geom_common.txt" #include "Mu2eG4/geom/g4_userOptions.txt"
The first include file contains the geometry description and the second contains the geant4 non-geometry options.
During this period the two legal configurations were:
// Using G4_module: services.GeometryService.inputFile : "Mu2eG4/test/geom_01.txt" physics.producers.g4run : @local::g4run
and
// Using Mu2eG4_module: services.GeometryService.inputFile : "Mu2eG4/geom/geom_common.txt" physics.producers.g4run : @local::mu2eg4runDefaultSingleStage
There are two things to note here:
- The file Mu2eG4/geom/geom_common.txt is the single point of maintenance; it is included in geom_01.txt
- The fcl definition mu2eg4runDefaultSingleStage contains the non-geometry geant4 configuration for Mu2eG4_module. The first release of mu2eg4runDefaultSingleStage was logically equivalent to the information in Mu2eG4/geom/g4_userOptions.txt; but new features were added to Mu2eG4_module and two configurations diverged.
There are two ways to misconfigure jobs:
services.GeometryService.inputFile : "Mu2eG4/test/geom_01.txt" physics.producers.g4run : @local::mu2eg4runDefaultSingleStage
and
services.GeometryService.inputFile : "Mu2eG4/geom/geom_common.txt" physics.producers.g4run : @local::g4run
In both cases the module will detector that it was given the wrong geometry file, issue an error message and stop the job.
When G4_module was retired, Mu2eG4/test/geom_01.txt was modifed so that it no longer included Mu2eG4/geom/g4_userOptions.txt; this made it identical to Mu2eG4/geom/geom_common.txt. And the definition of g4run was changed to be a copy of mu2eg4runDefaultSingleStage. With these changes most legacy configurations were transformed to the new system without having to edit the legacy configurations.
At this time G4_module.cc was changed to give an error message and stop the job. It will be deleted in the near future.