Difference between revisions of "SoLID Software Detector Simulation"
(→general note (Please read this!)) |
(→subsystem simulation) |
||
Line 100: | Line 100: | ||
They are considered "devel" version and located in their individual directories and person responsible as below | They are considered "devel" version and located in their individual directories and person responsible as below | ||
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/ec/ec_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/ec/ec_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/hgc/hgc_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/hgc/hgc_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/lgc/lgc_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/lgc/lgc_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/mrpc/mrpc_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/mrpc/mrpc_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/spd/spd_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/spd/spd_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/magnet/magnet_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/magnet/magnet_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/baffle/baffle_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/baffle/baffle_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/target/target_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/target/target_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/beamline/beamline_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/beamline/beamline_solid_gemc |
− | https://jlabsvn.jlab.org/svnroot/solid/subsystem/absorber/absorber_solid_gemc | + | https://jlabsvn.jlab.org/svnroot/solid/subsystem/absorber/absorber_solid_gemc |
These directories should be kept clean so it only has files necessary for simulation, and ready to copy into the "production" area to be used with other subsystems | These directories should be kept clean so it only has files necessary for simulation, and ready to copy into the "production" area to be used with other subsystems |
Revision as of 18:43, 24 October 2016
Contents
Introduction
SoLID detector simulation program "solid_gemc" is based on "GEMC 2.x" with additional hit process routine and outputs for all detector systems in SoLID.
It's located SoLID repository https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2 with source codes and detector configuration, field, scripts etc.
You need both the jlab framework and SoLID repository before you can compile and run solid_gemc, refer to the quick start section
The "set_solid" script is used to setup env
general note (Please read this!)
general note for geometry, materiel, mirror, hit processing, calling gemc as library with added functionally etc
Setup plot
They are stored here
http://hallaweb.jlab.org/12GeV/SoLID/download/sim/setup/
sort by "Last modified" to see latest
compile and run
some tmp fix
You would need these fix before compile and run solid_gemc
If you are using JLAB_VERSION=1.2
'''a temp fix for GEMC 2.2''' use some fine tuned field parameters, support linear interpolation for field map,fix a bug to run on farm *************************** source your setup script cd $GEMC/../ mv 2.2 2.2_old svn co https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/mod/gemc/2.2 (or ln -s path_to_your_existing_checkout ./) cd 2.2/source scons OPT=1 LIBRARY=shared *************************** '''a temp fix for BANKS 1.1''' WRITE_RAWS turn on/off tureinfo for all banks, now by default turn on for flux, off for all other banks *************************** source your setup script cd $BANKS/../ mv 1.1 1.1_old svn co https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/mod/banks/1.1 (or ln -s path_to_your_existing_checkout ./) cd 1.1 scons OPT=1 ***************************
If you are using JLAB_VERSION=1.3
'''a temp fix for BANKS 1.2''' WRITE_RAWS turn on/off tureinfo for all banks, now by default turn on for flux, off for all other banks *************************** source your setup script cd $BANKS/../ mv 1.2 1.2_old svn co https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/mod/banks/1.2 (or ln -s path_to_your_existing_checkout ./) cd 1.2 scons OPT=1 ***************************
compile and run solid_gemc
Once you complete the setup procedure, you can now compile "solid_gemc"
source your set_solid if you haven't done so cd $SoLID_GEMC/source/$GEMC_VERSION scons OPT=1 (you need to recompile every time GEMC gets updated)
after compiling, do the following to run it
cd $SoLID_GEMC/script solid_gemc solid_PVDIS_LD2.gcard or solid_gemc solid_PVDIS_simple.gcard solid_gemc solid_SIDIS_He3.gcard or solid_gemc solid_SIDIS_He3_simple.gcard or solid_gemc solid_SIDIS_He3_full.gcard solid_gemc solid_SIDIS_NH3.gcard or solid_gemc solid_SIDIS_NH3_simple.gcard (you should go to a clean terminal and source your set_solid again if somehow solid_gemc binary is not found in default PATH)
field map
https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/field/
solenoid_CLEOv8.dat (the field map for solenoid CLEOv8 design) solenoid_CLEOv8_Bz.dat (Bz field only, Br is 0) Bz1.4T.dat (uniform Bz field , close to the peak value of CLASv8) solenoid_ptarget.dat (polarized proton 5T target field)
subsystem simulation
"solid_gemc" can be used for individual sub-detector systems and the whole detector simulation.
Each of sub-detector systems can do simulation independently and ready to merge it back into the whole system simulation.
They are considered "devel" version and located in their individual directories and person responsible as below
https://jlabsvn.jlab.org/svnroot/solid/subsystem/ec/ec_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/hgc/hgc_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/lgc/lgc_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/mrpc/mrpc_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/spd/spd_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/magnet/magnet_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/baffle/baffle_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/target/target_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/beamline/beamline_solid_gemc https://jlabsvn.jlab.org/svnroot/solid/subsystem/absorber/absorber_solid_gemc
These directories should be kept clean so it only has files necessary for simulation, and ready to copy into the "production" area to be used with other subsystems
For all other files, please put them into other directories under the same subsystems.
Please refer to "hgc_solid_gemc" and "hgc" as an example
full simulation
All subsystems have their own "production" version directories "ec,hgc,lgc,gem,mrpc,spd,magnet,baffle,target,beamline,absorber" at "https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/geometry/"
Run full SoLID simulation with all subsystems together by
source your set_solid cd $SoLID_GEMC/script solid_gemc solid_PVDIS_LD2_full.gcard solid_gemc solid_SIDIS_He3_full.gcard solid_gemc solid_SIDIS_NH3_full.gcard solid_gemc solid_JPsi_LH2_full.gcard solid_gemc solid_DDVCS_LH2_full.gcard
Once you think your subsystem devel version is ready, before making it a production version, be sure to test it with full simulation, meaning it has no conflict with any other production subsystem.
Modify "$SoLID_GEMC/geometry/solid_SIDIS_He3_full" or "$SoLID_GEMC/geometry/solid_PVDIS_LD2_full" (generating geometry,hit,bank) and "$SoLID_GEMC/script/solid_SIDIS_He3_full.gcard" or "$SoLID_GEMC/script/solid_PVDIS_LD2_full.gcard" to mix your devel version system and other production subsystems to test
After verify no conflict, you may release it as production version by copying ONLY necessary files like all perl script and txt files without any change into its production directory.
analyzing result
example
The root tree output can be analysis by some very simple scripts here https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/analysis/
header tree and generated tree
header tree and generated tree are direct passing through from input, either particle gun or lund file produced by a generator, referring to [1]
For generator used for SoLID, "eicRate" and "halld" both use header defined here https://hallaweb.jlab.org/wiki/index.php/Solid_eventgenerator#Output_file
flux tree
detector ID for flux hit processing
We use built-in flux hit processing for virtual planes near to real detectors to record particles entering or leaving real detectors
Each virtual plane has a unique id to identify it and it appears in the "id" branch of "flux" tree
Its ID is defined by 7 digits integer like "abcdefg" a: detector GEM 1, CC 2, EC 3, MRPC 4, SPD 5, muon 6 b: sub-detector GEM 1 - 6 layer, LGCC 1, HGCC 2, FAEC 1, LAEC 2, MRPC 1, FASPD 1, LASPD 2, muon forward 1, muon endcap donut 2,muon barrel 3 c: subsub-detector GEM 1, CC 1 front, MRPC 1 front,SPD 1 front,EC 1 front 4 rear d,e,f,g: not used for now for example, 3110000 is for forward angle EC front plane see code example here https://jlabsvn.jlab.org/svnroot/solid/study/background/background.C
old way to run simulation, mainly for background study
geometry
refer to file " $SoLID_GEMC/geometry/changelog" for details
source your set_solid cd $SoLID_GEMC/geometry edit perl files to modify geometry, then run command below to generate new geometry txt files ./solid_PVDIS_simple.pl config_solid_PVDIS_simple.dat ./solid_PVDIS_LD2.pl config_solid_PVDIS_LD2.dat ./solid_SIDIS_He3_simple.pl config_solid_SIDIS_He3_simple.dat ./solid_SIDIS_He3.pl config_solid_SIDIS_He3.dat ./solid_SIDIS_NH3_simple.pl config_solid_SIDIS_NH3_simple.dat ./solid_SIDIS_NH3.pl config_solid_SIDIS_NH3.dat
materials
source your set_solid cd $SoLID_GEMC/geometry edit the perl file "solid_material.pl" to modify geometry, then run command below to generate new material txt files ./solid_material.pl config_solid_PVDIS_simple.dat ./solid_material.pl config_solid_PVDIS_LD2.dat ./solid_material.pl config_solid_SIDIS_He3_simple.dat ./solid_material.pl config_solid_SIDIS_He3.dat ./solid_material.pl config_solid_SIDIS_NH3_simple.dat ./solid_material.pl config_solid_SIDIS_NH3.dat