Difference between revisions of "Solid eventgenerator"

From Hall A Wiki
Jump to: navigation, search
Line 1: Line 1:
 
https://jlabsvn.jlab.org/svnroot/solid/evgen/
 
https://jlabsvn.jlab.org/svnroot/solid/evgen/
  
==The event generator==
+
refer to the README.txt for details of how to compile and use it
The event generator is at https://jlabsvn.jlab.org/svnroot/solid/evgen/eicRate_20101102/
+
 
 +
= inclusive event generator =
 +
 
 +
==single_rate==
 +
located at "single_rate"
 +
 
 +
==eicRate==
 +
located at "eicRate_20101102"
 
===How to compile it===
 
===How to compile it===
 
see https://jlabsvn.jlab.org/svnroot/solid/evgen/README.txt for more detailed instruction.
 
see https://jlabsvn.jlab.org/svnroot/solid/evgen/README.txt for more detailed instruction.
Line 110: Line 117:
 
     -l 1-0            : specify format input file ( lund-> 1 (just angle filtering); root->0 (default) )
 
     -l 1-0            : specify format input file ( lund-> 1 (just angle filtering); root->0 (default) )
 
     -g 2-1-0          : specify if particle in output is a geantino ( geantino-> 1 ; charged geantino-> 2 ; normal->0 (default) )
 
     -g 2-1-0          : specify if particle in output is a geantino ( geantino-> 1 ; charged geantino-> 2 ; normal->0 (default) )
 +
 +
= SIDIS event generator =
 +
 +
located at "collider"

Revision as of 17:50, 24 September 2012

https://jlabsvn.jlab.org/svnroot/solid/evgen/

refer to the README.txt for details of how to compile and use it

inclusive event generator

single_rate

located at "single_rate"

eicRate

located at "eicRate_20101102"

How to compile it

see https://jlabsvn.jlab.org/svnroot/solid/evgen/README.txt for more detailed instruction. It requires g++ and gfortran (for other configurations, modify the Makefile) and the CTEQ pdf libraries (for convenience a copy is in https://jlabsvn.jlab.org/svnroot/solid/evgen/ )

  • executing 'make' should create the binary (eicRate)

What it can do

The input file and output file have to be specified at the time of execution (to permit an easier parallelization). If not specified it will try to use the default ones, 'input.dat' and 'output.root'.

eicRate : This Program Generates events 
Usage: eicRate -i inputfile -o outputfile 
    -i (or -input) inputfile    input file name with correct flags (example input.dat)  
    -o (or -output) outputfile output file name with correct flags (example output.root)  
    -h (or -help) print this message

It can generate:

  • <math>e^- </math> DIS events
  • <math>\pi^+ , \pi^-, \pi^0</math> with cross section given by the WISER fits. The <math>\pi^0</math> then decay in two photons. The two photons output are in the tree as pi0_g1 and pi0_g2.
  • <math>e^- </math> ELASTIC events
  • The output is then written also in LUND and SOLLUND format (the decay products will be part of the same event)
  • The vertex position is decided in an uniform way randomly inside the raster. For the two decayed <math>\gamma</math>s from the <math>\pi^0</math> the vertex is shifted by a displacement determined selecting randomly the decay time. If the radius is set to "0.0" in the input file, the vertex will not be generated

The input file

the input file it commands the event generator with information in common to every process. an example can be found at https://jlabsvn.jlab.org/svnroot/solid/evgen/eicRate_20101102/output/input.dat The flags are (they need to be in the same order as in the example)

  • nevt : Number of events to be generated (for example 25000)
  • nprint : Number of events every which to print and output on screen (for example 1000000)
  • lumin  : Luminosity (for example 1.0e37 Hz/cm^2)
  • runtime  : Runtime (for example 48.0 hours)
  • e-_en  : Beam energy (for example 6.0 GeV)
  • ion_en : Energy of the ions of the target (for example 0.938 GeV)
  • ion_m : Mass of the ions of the target (for example 0.938 GeV)
  • ion_Z : Number of protons in the target (for example 1)
  • ion_N : Number of neutrons in the target (for example 1)
  • dens : Density of the target (g/cm^3): if 0.0, will try to search one in his own database. If you rather than want to use your own (or it is not in the database), specify it here (for example 0.162 g/cm^3)
  • length : Length of the target (cm): if 0.0, will try to search one in his own database. If you rather than want to use your own (or it is not in the database), specify it here (for example 40 cm)
  • lenx : size in X of the raster (cm , it is assumed to be of cylindrical shape): if 0.0 The vertex will not be generated (for example 0.2 cm)
  • leny : size in Y of the raster (cm , it is assumed to be of cylindrical shape): if 0.0 The vertex will not be generated (for example 0.2 cm)
  • model : Model for the cross section used: 1= electron DIS ; 2=pi+ ; 3=pi- ; 4=pi0 ; 5= electron ELASTIC ( for example 1)
  • output : Output format: 1=root ; 2=root+LUND ' 3=root+SOLLUND (for example 3)

Output file

The output file name is specified at the time of execution of eicRate. If not specified the default 'output.root' will be used. It is also possible to have, in parallel of the root output also:

  • LUND format : flag 'output 2' in the inputfile (a script will create another file, named changing the string "root" in the output name with "lund", so by default 'output.lund'
  • SOLLUND format : flag 'output 3' in the inputfile (a script will create another file, named changing the string "root" in the output name with "sollund", so by default 'output.sollund'


Generated events

2.5M events for 4.4GeV, 5.5GeV, 6.6GeV, 11.0GeV at http://hallaweb.jlab.org/12GeV/SoLID/download/event_gen/test_generator.tgz

Conversion from root to lund format

Following is shown a tool to convert and play with the output of the event generator https://jlabsvn.jlab.org/svnroot/solid/evgen/root_to_lund/


DEFINITION GEANTINO

     Arguments for constructor are as follows 
                  name             mass          width         charge
                2*spin           parity  C-conjugation
             2*Isospin       2*Isospin3       G-parity
                  type    lepton number  baryon number   PDG encoding
                stable         lifetime    decay table 
                shortlived      subType    anti_encoding
                 name,           0.0*MeV,       0.0*MeV,         0.0, 
                 0,                    0,             0,          
                 0,                    0,             0,             
                 "geantino",           0,             0,           0,
                 true,               0.0,          NULL,
                 false,        "geantino",            0
               

DEFINITION CHARGED GEANTINO

                name,         0.0*MeV,       0.0*MeV,   +1.*eplus, 
                   0,               0,             0,          
                   0,               0,             0,             
          "geantino",               0,             0,           0,
                true,             0.0,          NULL,
                false,     "geantino",             0


ROOT TO LUND CONVERSION


I modified my root to lund conversion so that one can filter the data 
based on the angle of scattering of the electron.
I have also put the option to use a "lund format" file as input for 
filtering based on the angle (you have these files right now).
There is also an option to have in the output a geantino or a charged geantino, rather than the electron.


          

If you running without flags you get this message (how to use it):

 root2lund : This Program translate the output from eicRate in LUND format and Filter the scattered electron angles
 Usage: root2lund -o outputfile -i inputfile [-th_min theta_min] [-th_max theta_max] [-ph_min phi_min] [-ph_max phi_max] [-l 1-0] [-g 2-1-0]
     -o outputfile     : output file name (example pluto.lund)  
     -i inputfile      : input file name (example pluto.root)  
     -h help, print this message 
   [optional] 
     -th_min theta_min : specify theta minimum for scattered electron 
     -th_max theta_max : specify theta maximum for scattered electron 
     -ph_min phi_min   : specify phi minimum for scattered electron 
     -ph_max phi_max   : specify phi maximum for scattered electron 
     -l 1-0            : specify format input file ( lund-> 1 (just angle filtering); root->0 (default) )
     -g 2-1-0          : specify if particle in output is a geantino ( geantino-> 1 ; charged geantino-> 2 ; normal->0 (default) )

= SIDIS event generator =

located at "collider"