Difference between revisions of "SoLID Software Detector Simulation"

From Hall A Wiki
Jump to: navigation, search
Line 1: Line 1:
 
= Introduction =
 
= Introduction =
  
SoLID detector simulation program "solid_gemc" is based on "GEMC" with additional hit process routine and outputs for all detector systems in SoLID.
+
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.
 
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 [[Solid_Software#quick_start|quick start]] section
 
You need both the jlab framework and SoLID repository before you can compile and run solid_gemc, refer to the [[Solid_Software#quick_start|quick start]] section
 +
 +
The "set_solid" script is used to setup env
  
 
= compile and run =
 
= compile and run =
 
Once you complete the setup procedure, you can now compile "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
 
  cd $SoLID_GEMC/source/$GEMC_VERSION
 
  scons OPT=1
 
  scons OPT=1
Line 32: Line 35:
 
Use examples in "study" in the repository [https://jlabsvn.jlab.org/svnroot/solid/study/ here] to see how to create geometry, store hit and analysis results
 
Use examples in "study" in the repository [https://jlabsvn.jlab.org/svnroot/solid/study/ here] to see how to create geometry, store hit and analysis results
  
'''here is a general note for GEMC about geometry, materiel, hit processing etc, read it before you proceed to the specific topic below'''
+
'''[https://eic.jlab.org/wiki/index.php/Detector_simulation_general_note Detector simulation general note] for GEMC about geometry, materiel, hit processing etc, read this please'''
 
+
'''https://eic.jlab.org/wiki/index.php/Detector_simulation_general_note'''
+
  
 
= subsystem simulation =
 
= subsystem simulation =
  
"solid_gemc" can be used for the whole detector simulation and individual sub-detector systems at the same time.
+
"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.
 
Each of sub-detector systems can do simulation independently and ready to merge it back into the whole system simulation.
  
They are located in the repository at
+
They are considered "devel" version and located in their individual directories at  
  
  https://jlabsvn.jlab.org/svnroot/solid/subsystem
+
  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
  
Each director has a name similar to "ec/ec_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 =
 
= full simulation =
  
 +
All subsystems have their own "production" version directories "ec,hgc,lgc,gem,mrpc,spd,magnet,baffle,target,beamline" at "$SoLID_GEMC/geometry/"
 +
 +
Run full SoLID simulation with all subsystems together by
 
  source your set_solid
 
  source your set_solid
  cd $SoLID_GEMC/geometry
+
  cd $SoLID_GEMC/script
  ./solid_SIDIS_He3_full
+
  solid_gemc $SoLID_GEMC/script/solid_SIDIS_He3_full.gcard
 +
 
 +
Once you think your subsystem devel version is ready to become a production version, be sure to test it within full simulation, meaning it has no conflict with any other production subsystem.
 +
 
 +
Modify "$SoLID_GEMC/geometry/solid_SIDIS_He3_full" (generating geometry,hit,bank) and "$SoLID_GEMC/script/solid_SIDIS_He3_full.gcard" to mix your devel version system and other production subsystems to test
 +
 
 +
After verify your devel version with all other subsystems, 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.
 +
 
 +
 
 +
= 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)
  
= Details =
+
= old way to run simulation, mainly for background study =
  
 
== geometry ==
 
== geometry ==
refer to file " $SoLID_GEMC/geometrychangelog" for details
+
refer to file " $SoLID_GEMC/geometry/changelog" for details
  
 
  source your set_solid
 
  source your set_solid
Line 86: Line 118:
  
 
see examples under https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/source and https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc/
 
see examples under https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/source and https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc/
 
  
 
detector ID for flux bank
 
detector ID for flux bank
Line 100: Line 131:
 
  for example, 3110000 is for forward angle EC front plane
 
  for example, 3110000 is for forward angle EC front plane
 
  see code example here https://jlabsvn.jlab.org/svnroot/solid/study/background/background.C
 
  see code example here https://jlabsvn.jlab.org/svnroot/solid/study/background/background.C
 
== 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)
 

Revision as of 16:03, 13 October 2015

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

compile and run

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)

general info

run "solid_gemc -help" to see running option

read the tutorials on the main GEMC website here

another tutorialGEMC tuturial on 2014/03/06

Use examples in "study" in the repository here to see how to create geometry, store hit and analysis results

Detector simulation general note for GEMC about geometry, materiel, hit processing etc, read this please

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 at

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

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" at "$SoLID_GEMC/geometry/"

Run full SoLID simulation with all subsystems together by

source your set_solid
cd $SoLID_GEMC/script
solid_gemc $SoLID_GEMC/script/solid_SIDIS_He3_full.gcard

Once you think your subsystem devel version is ready to become a production version, be sure to test it within full simulation, meaning it has no conflict with any other production subsystem.

Modify "$SoLID_GEMC/geometry/solid_SIDIS_He3_full" (generating geometry,hit,bank) and "$SoLID_GEMC/script/solid_SIDIS_He3_full.gcard" to mix your devel version system and other production subsystems to test

After verify your devel version with all other subsystems, 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.


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)

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

hit processing

refer to general note

see examples under https://jlabsvn.jlab.org/svnroot/solid/solid_gemc2/source and https://jlabsvn.jlab.org/svnroot/solid/subsystem/gem/gem_solid_gemc/

detector ID for flux bank

Its ID is defined by 7 digits integer like "abcdefg"
a: detector type
   GEM 1, CC 2, EC 3, MRPC 4, SPD 5, muon 6
b: detector assembly 
   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: sub detector
   GEM not used, CC 0 PMT 1 front, MRPC 0 inside 1 front, EC 1 front 2 middle 3 inner 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