Warning, /DEMPgen/src/eic_evgen/README is written in an unsupported language. File is not indexed.
0001 This is an event generator for deep exclusive electro pion production at EIC.
0002
0003 First make two directories:
0004
0005 mkdir LundFiles
0006 mkdir RootFiles
0007
0008 This generator uses ROOT libraries. To compile please use following command:
0009
0010 g++ -o eic eic.cxx `root-config --cflags --glibs`
0011
0012 This generator is valid for:
0013 5.0 < Qsq < 35 GeV^2
0014 2.0 < w < 10 GeV
0015 0 < -t < 1.3 GeV^2
0016
0017 It can generates a root file, a txt file and a dat file. Generation of Root
0018 file is turned off. dat file is written in lund format to use in eic_gemc
0019
0020 The last line in txt file "Number of lund events" shows how many events
0021 are successfully generated. Use this number in gcard of eic_gemc
0022
0023 Follwing is the format of dat file:
0024
0025 ppiOut << "3"
0026 << " \t " << fPhi // var 1
0027 << " \t " << fPhiS // var 2
0028 << " \t " << fx // var 3
0029 << " \t " << "1"
0030 << " \t " << fQsq_GeV // var 4
0031 << " \t " << fT_GeV // var 5
0032 << " \t " << fW_GeV // var 6
0033 << " \t " << fEpsilon // var 7
0034 << " \t " << fEventWeight // var 8
0035 << endl;
0036
0037 // Pion -
0038 ppiOut << setw(10) << "1"
0039 << setw(10) << "1"
0040 << setw(10) << "1"
0041 << setw(10) << "211"
0042 << setw(10) << "0"
0043 << setw(10) << "0"
0044 << setw(16) << lpiong.X()
0045 << setw(16) << lpiong.Y()
0046 << setw(16) << lpiong.Z()
0047 << setw(16) << lpiong.E()
0048 << setw(16) << fPion_Mass_GeV
0049 << setw(16) << fVertex_X
0050 << setw(16) << fVertex_Y
0051 << setw(16) << fVertex_Z
0052 << endl;
0053
0054 // Electron
0055 ppiOut << setw(10) << "2"
0056 << setw(10) << "-1"
0057 << setw(10) << "1"
0058 << setw(10) << "11"
0059 << setw(10) << "0"
0060 << setw(10) << "0"
0061 << setw(16) << lscatelecg.X()
0062 << setw(16) << lscatelecg.Y()
0063 << setw(16) << lscatelecg.Z()
0064 << setw(16) << lscatelecg.E()
0065 << setw(16) << fElectron_Mass_GeV
0066 << setw(16) << fVertex_X
0067 << setw(16) << fVertex_Y
0068 << setw(16) << fVertex_Z
0069 << endl;
0070
0071 // Neutron
0072 ppiOut << setw(10) << "3"
0073 << setw(10) << "1"
0074 << setw(10) << "1"
0075 << setw(10) << "2112"
0076 << setw(10) << "0"
0077 << setw(10) << "0"
0078 << setw(16) << lneutrong.X()
0079 << setw(16) << lneutrong.Y()
0080 << setw(16) << lneutrong.Z()
0081 << setw(16) << lneutrong.E()
0082 << setw(16) << fNeutron_Mass_GeV
0083 << setw(16) << fVertex_X
0084 << setw(16) << fVertex_Y
0085 << setw(16) << fVertex_Z
0086 << endl;
0087
0088
0089 Please note that event weight of a single evevnt is normalized to total
0090 events tried so you dont need to know the ratio of events generated to
0091 events tried, just use the "fEventWeight" for each event
0092
0093 For a quick check just run the follwing command in c-shell
0094
0095 source ./runEIC.csh
0096
0097 Note 1:
0098 fEventWeight is a negative number because of the phase space of scattered
0099 electron.
0100
0101 Note 2:
0102 Lets say you generate "N" dat files and then generate "N" root files using
0103 eic_gemc. When you combine these eic_gemc generated "N" files using hadd
0104 command of root (or using your own script) then in your analysis code you
0105 must divide the eighth variable of header tree(which contains the event
0106 event weight) by "N"
0107
0108 header->SetBranchAddress("var8",&var8);
0109
0110 weight = -var8->at(0)/300.0;
0111
0112