The clas12Tags repository maintains a version of gemc dedicated to the JLab CLAS12 experiments, with the CLAS12 detector geometry and gcards for the various experiment configurations.
It is tagged more frequently than the main gemc repository - as needed by CLAS12 experiments.
The tags distributed as tarball and maintained as modules are tested. Some versions may be deleted because they contain bugs or inaccuracies. The release notes for those versions are accumulated in the releases notes for each distributed tag.
- [dev](release_notes/5.11.md, use COATJAVA release 11.0.4 )
- 5.10
- 4.4.2
- dev : notice this is the development version and may contain bugs.
To load gemc through the clas12 environment at JLab:
module use /scigroup/cvmfs/geant4/modules
module load geant4
To switch to a different version of gemc use module switch
. For example:
module switch gemc/dev
To run GEMC you can select one of the gcards in the clas12-config installed on cvmfs. For example:
gemc /cvmfs/oasis.opensciencegrid.org/jlab/hallb/clas12/sw/noarch/clas12-config/dev/gemc/rga-fall2018.gcard -N=nevents -USE_GUI=0
Alternatively the gcards can be downloaded from https://github.com/JeffersonLab/clas12-config
GEMC simulations can be run on the Open Science Grid (OSG) using the CLAS12 Simulation Submission Portal.
Load the environment as described above.
Get the desired tag from here and unpack it (using 5.X as an example):
wget https://github.com/gemc/clas12Tags/archive/refs/tags/5.X.tar.gz
tar -xvf 5.X.tar.gz
Then compile gemc:
cd clas12_tags-5.X/source
scons -jN OPT=1
where N is the number of cores available.
clas12Tags is a repo with source code and geometry derived from gemc/source. Modifications should be made to the gemc/source repo by forking it and making a pull request.
Note: gemc uses static function to load specific clas12 code (ugly, fixed in gemc3). In particular the BMT and FMT hit processes have these two functions:
bmtConstants BMT_HitProcess::bmtc = initializeBMTConstants(-1);
fmtConstants FMT_HitProcess::fmtc = initializeFMTConstants(-1);
that should be changed to:
bmtConstants BMT_HitProcess::bmtc = initializeBMTConstants(1);
fmtConstants FMT_HitProcess::fmtc = initializeFMTConstants(1);
to initialize properly BMT and FMT and avoid seg fault when those detectors are used. This is done in the clas12Tags repo.
You can scale magnetic fields using the SCALE_FIELD option. To do that copy the gcard somewhere first, then modify it. The gcard can work from any location. Example on how to run at 80% torus field (inbending) and 60% solenoid field:
<option name="SCALE_FIELD" value="binary_torus, -0.8"/>
<option name="SCALE_FIELD" value="binary_solenoid, 0.6"/>
By default, the target cell is filled with liquid hydrogen by specifying the "lh2" target variation. To use liquid deuterium instead use the variation "lD2" instead.
To use an empty target instead, use the SWITCH_MATERIALTO option.
<option name="SWITCH_MATERIALTO" value="G4_lH2, G4_Galactic"/>
While the gcards takes care of the target volumes positions (for example, in rga_spring2019 it is moved upstream by 3cm), it is up to the generators and the LUND files to place the event in the correct location.
The surveyed target positions are listed
below:
- rga_spring2018: -1.94cm
- rga_fall2018: -3.0cm
- rgk_fall2018_FTOn: -3.0cm
- rgk_fall2018_FTOff: -3.0cm
- rgb_spring2019: -3.0cm
- rga_spring2019: -3.0cm
- rgb_fall2019: -3.0cm
You can remove/comment out the <detector>
tag in the gcard to remove a whole system.
To remove individual elements, use the existance tag in the gcard. For example, to remove the forward micromegas:
<detector name="FMT">
<existence exist="no" />
</detector>
The CLAS12 detector geometry sources are kept in the detector git repository.
The CLAS12 geometry services are kept in the java geant4 factory git repository.
The default configuration for the first experiment is with "FTOn" (Figure 1, Left): complete forward tagger is fully operational. The other available configuration is "FTOff" (Figure 1, Right): the Forward Tagger tracker is replaced with shielding, and the tungsten cone is moved upstream.
The simulations in preparation of the first experiment should use the default version FTOn. FTOff will be used only by experts for special studies in preparation for the engineering run.
FT On configuration: Full, OperationalForward Tagger. | FT Off configuration: FT Tracker replaced by shielding, Tungsten Cone moved upstream, FT if turned off. |
To change configuration from FTOn to FTOff, replace the keywords and variations from:
<detector name="ft" factory="TEXT" variation="FTOn"/>
<detector name="beamline" factory="TEXT" variation="FTOn"/>
<detector name="cadBeamline/" factory="CAD"/>
to:
<detector name="ft" factory="TEXT" variation="FTOff"/>
<detector name="beamline" factory="TEXT" variation="FTOff"/>
<detector name="cadBeamlineFTOFF/" factory="CAD"/>
See clas12-validation for validation of the CLAS12 simulation. In particular check this validation.yml
Please use CLAS12 discourse for feedback on anything clas12tags related:
https://clas12.discourse.group