GeometryHistory

From Mu2eWiki
Jump to navigation Jump to search

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.