Back to home page

EIC code displayed by LXR

 
 

    


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