Difference between revisions of "Running GSIM CLAS simulation"

From Hall A Wiki
Jump to: navigation, search
(Look at the output files)
 
(4 intermediate revisions by the same user not shown)
Line 60: Line 60:
 
* port the generated-events data file (in this example '''C.txt''') to the converter utility and convert it. e.g.
 
* port the generated-events data file (in this example '''C.txt''') to the converter utility and convert it. e.g.
  
  cp test.dat $GSIM/EventGenerator/Txt2PartConverter
+
   ./txt2part -m -o12_100GeV.evt < 12_100GeV.txt  
   ./txt2part -m -omctk.evt < C.txt  
+
  
 
(the result: a part file '''mctk.evt''' suitable for GSIM)
 
(the result: a part file '''mctk.evt''' suitable for GSIM)
Line 67: Line 66:
 
=== Running generated events through a CLASS GEANT-3 simulation ===
 
=== Running generated events through a CLASS GEANT-3 simulation ===
 
==== running GSIM with the generated events ====
 
==== running GSIM with the generated events ====
 
* port the events file to the shared directory
 
 
  mv mctk.evt $GSIM
 
  GoGSIM
 
  
 
* to run the first XXXX events through the simulation, modify the '''ffread.in''' file so that it triggers XXXX events
 
* to run the first XXXX events through the simulation, modify the '''ffread.in''' file so that it triggers XXXX events
  
* then execute the shell script that runs GSIM
+
* then execute the shell script that runs GSIM with e.g. '''12_100GeV.evt'''
  
   ./gsim_Batch.csh
+
   ./gsim_Batch.csh 12_100GeV
  
 
* or simply use the run command
 
* or simply use the run command
  
   RunGSIM
+
   RunGSIM 12_100GeV
  
(the result: 2 bos + 1 txt files , '''gsimtest.txt''', '''gsimtest.bos''', '''gpp_test.bos''' and the output file '''outfile1''' )
+
* '''gsim_*.bos''' contains the data 'collected' by CLASS (ADC/TDC)
  
* '''gsimtest.bos''' contains the data 'collected' by CLASS (ADC/TDC)
+
* '''gpp_*.bos''' incorporates preprocessing to add smearing of the data
 
+
* '''gpp_test.bos''' incorporates preprocessing to add smearing of the data
+
 
   
 
   
* '''outfile1'''  is the physical data after REConstruction SYStem analyzed it
+
* '''outfile_*'''  is the physical data after REConstruction SYStem analyzed it
  
 
==== Look at the output files ====
 
==== Look at the output files ====
Line 95: Line 87:
 
* using COUNTBS one could count the number of events, e.g.
 
* using COUNTBS one could count the number of events, e.g.
  
   ./countbs gsimtest.bos
+
   ./countbs gsim_*.bos
  
 
(Note the first additional two events are header and are not to be accounted)
 
(Note the first additional two events are header and are not to be accounted)
Line 101: Line 93:
 
* using BOSDUMP code, one can look at the data from the terminal, e.g.
 
* using BOSDUMP code, one can look at the data from the terminal, e.g.
  
   ./bosdump gsimtest.bos
+
   ./bosdump gsim_*.bos
   ./bosdump gpp_test.bos
+
   ./bosdump gpp_*.bos
 
+
  
 
=== Converting the GSIM output file to ROOT ===
 
=== Converting the GSIM output file to ROOT ===

Latest revision as of 09:47, 12 April 2015

GSIM Inventory

  • GSIM directory is to be located on the farm, at a large enough work disk. An example of the simulation inventory can be found at
 /work/halla/e07006/disk1/Erez/gsim  (will be used for the remainder of the documentation as $GSIM)
  • To get directly to the GSIM location an alias was set, so simply type
 GoGSIM

Running GSIM

Setting an Event Generator and create events file

  • The simple kinematic event generator we use at TAU is based on actual data:

e-e'p events in which 1 proton was detect serve as baseline to generation of a second proton, using the c.m. kinematics calculation

  • For jets/showers, PYTHIA and Lepto64 are used as the base-line event generator for GSIM
  • The existing EG is a ROOT macro located under $GSIM/EventGenerator/ directory.


Setting Event Generator

  • The EG should be modified for the specific solid target. An example for 12C can be found at
 $GSIM/EventGenerator/eep_EG.C

Generate the Events

  • To build the event generator use the build compilation command, e.g.
 root -l  eep_EG.C

(the result: an executable event generator e.g. lepto_exe/LeptoC.exe)

Look at the generated distributions

  • A utility for observing the generated data exist in the main EG directory $GSIM/EventGenerator/LeptoRoot
  • Port the data file into the utility directory (cp the file to the right location)
  • A perl script is used to write it in the right format
 rm data.dat
 ./leptoroot.pl < C.dat > data.dat 

(the result: a different (just numbers) data file data.dat)

  • An executable is then used to write the data into a ROOT TTree
 ./leptoroot 

(the result: a ROOT file LeptoRoot/data.root that will enable you to observe the generated distributions)

Converting generated data files to GEANT-3 format input

  • port the generated-events data file (in this example C.txt) to the converter utility and convert it. e.g.
 ./txt2part -m -o12_100GeV.evt < 12_100GeV.txt 

(the result: a part file mctk.evt suitable for GSIM)

Running generated events through a CLASS GEANT-3 simulation

running GSIM with the generated events

  • to run the first XXXX events through the simulation, modify the ffread.in file so that it triggers XXXX events
  • then execute the shell script that runs GSIM with e.g. 12_100GeV.evt
 ./gsim_Batch.csh 12_100GeV
  • or simply use the run command
 RunGSIM 12_100GeV
  • gsim_*.bos contains the data 'collected' by CLASS (ADC/TDC)
  • gpp_*.bos incorporates preprocessing to add smearing of the data
  • outfile_* is the physical data after REConstruction SYStem analyzed it

Look at the output files

  • using COUNTBS one could count the number of events, e.g.
 ./countbs gsim_*.bos

(Note the first additional two events are header and are not to be accounted)

  • using BOSDUMP code, one can look at the data from the terminal, e.g.
 ./bosdump gsim_*.bos
 ./bosdump gpp_*.bos

Converting the GSIM output file to ROOT

  • this is the easy part now. For an output file named outfile1 e.g., use
 ./WriteRootDst -o output.root -GSIM outfile1

(the result: a root file /output.root)


Writing the physical tree

  • The same way used to write the data file (utilizing write_tree.cxx) an executable is generated from write_simulation.cxx
  • write_simulation.cxx, apart from writing the EVNT bank data, also writes GSIM data
  • An example can be found at /u/home/cohen/Clas/WriteTreeEG2
  • A soft link is generated at /w/halla-scifs2/e07006/Erez/gsim/simulate/WriteTree so the only thing ones has to type is
 write_simulation


Observing the output ROOT TTree

  • The ROOT TTree is called
 CLASEVENT
  • To look at the data use e.g.
 CLASEVENT -> StartViewer()
  • The 'collected data' is stored in EVNT.XXXX variables, while the generated data is stored in GSIM.XXXX variables.


Running GSIM in interactive mode

  • follow the steps up to ./gsim_test.csh (without executing the shell script!)
  • source the necessary environmental set-ups
 source /group/clas/builds/environment.csh
  • run GSIM
 gsim_int -ffread ffread.in -mcin XXXX.evt

(where XXXX.evt is the event file, e.g. mctk.evt)

  • inside GSIM you will be prompted to answer a question. disregard it (type \return)
  • execute the following commands
 switch 1 2 
 dcut clas 2 0 10 10 0.015 0.015
 trig 1


[back to Tel Aviv University SRC Group]