PEPSI: Difference between revisions
No edit summary |
No edit summary |
||
Line 1: | Line 1: | ||
====By now it is better to use DJANGOH for polarised studies as it is the more complete generator==== | ==== By now it is better to use DJANGOH for polarised studies as it is the more complete generator ==== | ||
PEPSI (Polarised Electron Proton Scattering Interactions) [[#Ref1|[1]]] is a Monte Carlo generator for polarised deep inelastic scattering (pDIS). It is based on the [http://www.isv.uu.se/thep/lepto/ LEPTO] 6.5 Monte Carlo for unpolarised DIS. | PEPSI (Polarised Electron Proton Scattering Interactions) [[#Ref1|[1]]] is a Monte Carlo generator for polarised deep inelastic scattering (pDIS). It is based on the [http://www.isv.uu.se/thep/lepto/ LEPTO] 6.5 Monte Carlo for unpolarised DIS. | ||
== PEPSI References == | == PEPSI References == | ||
<span id="Ref1">(1)</span> ''"PEPSI - a Monte Carlo generator for polarized leptoproduction"'', L. Mankiewicz, A. Schäfer and M. Veltri, Comp. Phys. Comm. '''71''', 305-318 (1992) [https://wiki.bnl.gov/eic/ | <span id="Ref1">(1)</span> ''"PEPSI - a Monte Carlo generator for polarized leptoproduction"'', L. Mankiewicz, A. Schäfer and M. Veltri, Comp. Phys. Comm. '''71''', 305-318 (1992) [https://wiki.bnl.gov/eic/upload/PEPSI.paper.pdf PEPSI.paper.pdf]. | ||
==Parton distribution functions== | == Parton distribution functions == | ||
The distribution function to use in polarised leptoproduction is set via the variable <tt>LST(15)</tt> in the LEPTO <tt>COMMON</tt> block <tt>/LEPTOU/</tt>. [[PEPSI-pdf | Tables 1 and 2]] list internal allowed values of <tt>LST(15)</tt> for polarised and unpolarised distributions respectively. | The distribution function to use in polarised leptoproduction is set via the variable <tt>LST(15)</tt> in the LEPTO <tt>COMMON</tt> block <tt>/LEPTOU/</tt>. [[PEPSI-pdf|Tables 1 and 2]] list internal allowed values of <tt>LST(15)</tt> for polarised and unpolarised distributions respectively. | ||
Pepsi is linked with the pdflib such all PDFs included in there can be used by setting <tt>LST(15)</tt> to the respective PDF-ID | Pepsi is linked with the pdflib such all PDFs included in there can be used by setting <tt>LST(15)</tt> to the respective PDF-ID | ||
Line 16: | Line 17: | ||
{| class="wikitable" style="text-align:left" border="1" cellpadding="3" cellspacing="0" | {| class="wikitable" style="text-align:left" border="1" cellpadding="3" cellspacing="0" | ||
|- | |- | ||
! style="background:#ffdead;" |Subprocess | ! style="background:#ffdead;" | Subprocess | ||
! style="background:#ffdead;" |# | ! style="background:#ffdead;" | # | ||
! style="background:#ffdead;" |Description | ! style="background:#ffdead;" | Description | ||
|- | |- | ||
|colspan="3" align="center" | DIRECT | | colspan="3" align="center" | DIRECT | ||
|- | |- | ||
!γ∗q → q | ! γ∗q → q | ||
!1 | ! 1 | ||
!LO DIS | ! LO DIS | ||
|- | |- | ||
!γ∗ q → qg | ! γ∗ q → qg | ||
!2 | ! 2 | ||
! QCDC | ! QCDC | ||
|- | |- | ||
!γ∗ g → q qbar | ! γ∗ g → q qbar | ||
!3 | ! 3 | ||
! PGF | ! PGF | ||
|} | |} | ||
QCDC: QCD-Compton, radiation of a gluon from incoming or outgoing quark lines<br> | |||
PGF: Photon Gluon Fusion | QCDC: QCD-Compton, radiation of a gluon from incoming or outgoing quark lines<br/>PGF: Photon Gluon Fusion | ||
== Running PEPSI == | == Running PEPSI == | ||
the code can be found on the afs directory for EIC at BNL | the code can be found on the afs directory for EIC at BNL | ||
"/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI" | "/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI" | ||
this code is based on PEPSI/LEPTO and was modified to include radiative corrections using [[# | this code is based on PEPSI/LEPTO and was modified to include radiative corrections using [[#Documentation_on_Radiative_Corrections:|RadGen]].<br/>The main program is in the same directory and called pepsiMaineRHIC_noradcorr.f / pepsiMaineRHIC_radcorr.f, several other routines are needed, which are in the same directory.<br/>The executable is in the same directory and called pepsieRHICnoRAD / pepsieRHICwithRAD<br/>There are several steer files (named: input.data. XXXXX.eic) provided in this directory to run PEPSI and get reasonable output. | ||
The main program is in the same directory and called pepsiMaineRHIC_noradcorr.f / pepsiMaineRHIC_radcorr.f, several other routines are needed, which are in the same directory.<br> | |||
The executable is in the same directory and called pepsieRHICnoRAD / pepsieRHICwithRAD<br> | |||
There are several steer files (named: input.data. XXXXX.eic) provided in this directory to run PEPSI and get reasonable output. | |||
=== How to Run the Code === | === How to Run the Code === | ||
====Features==== | |||
PEPSI has to be run twice if polarized asymmetries should be generated, once for parallel, lepton and proton beam spin direction, and once antiparallel.<br> | ==== Features ==== | ||
Charge Current events can only be generated in the unpolarized mode.<br> | |||
The LST(8) can only be used different from 0 or 1 in the unpolarised mode. | PEPSI has to be run twice if polarized asymmetries should be generated, once for parallel, lepton and proton beam spin direction, and once antiparallel.<br/>Charge Current events can only be generated in the unpolarized mode.<br/>The LST(8) can only be used different from 0 or 1 in the unpolarised mode. | ||
==== without radiative corrections ==== | ==== without radiative corrections ==== | ||
pepsieRHICwithRAD < input.data_noradcor.eic.pol.anti > XXX.log | pepsieRHICwithRAD < input.data_noradcor.eic.pol.anti > XXX.log | ||
input.data_noradcor.eic.pol.anti is one of the steer file examples in the directory to run PEPSI with settings tuned for Hermes, and/or H1 and ZEUS for the antiparallel polarized cross-section<br> | |||
input.data_noradcor.eic.pol.par: for the parallel polarized cross-section<br> | input.data_noradcor.eic.pol.anti is one of the steer file examples in the directory to run PEPSI with settings tuned for Hermes, and/or H1 and ZEUS for the antiparallel polarized cross-section<br/>input.data_noradcor.eic.pol.par: for the parallel polarized cross-section<br/>input.data_noradcor.eic.unpol: for the unpolarised cross-section | ||
input.data_noradcor.eic.unpol: for the unpolarised cross-section | |||
==== with radiative corrections ==== | ==== with radiative corrections ==== | ||
* create a directory called radgen in the area you want to run the code | |||
* you either need to generate the lookup table for your cuts and beam energy settings first | *create a directory called radgen in the area you want to run the code | ||
*you either need to generate the lookup table for your cuts and beam energy settings first | |||
pepsieRHICwithRAD < input.data_make-radcor.eic.unpol | pepsieRHICwithRAD < input.data_make-radcor.eic.unpol | ||
* or you can use one of the files already generated | |||
the files are in the directory | *or you can use one of the files already generated | ||
the files are in the directory | |||
"/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI/radgen" | "/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI/radgen" | ||
and called xytab1unp.04.050.dat or xytab1ant.04.050.dat or xytab1par.04.050.dat | and called xytab1unp.04.050.dat or xytab1ant.04.050.dat or xytab1par.04.050.dat | ||
* to run the code than with radiative corrections simply change the steer file to either | |||
*to run the code than with radiative corrections simply change the steer file to either | |||
input.data_radcor.eic.unpol or input.data_radcor.eic.pol.par or .... and | input.data_radcor.eic.unpol or input.data_radcor.eic.pol.par or .... and | ||
type pepsieRHICwithRAD < input.data_radcor.eic.unpol > XXX.log | type pepsieRHICwithRAD < input.data_radcor.eic.unpol > XXX.log | ||
=== Output file structure === | === Output file structure === | ||
the output file is in a text format which has the following structure. | |||
* 1st line: | the output file is in a text format which has the following structure. | ||
* 2nd line: "============================================" | |||
*1st line: PEPSI EVENT FILE | |||
* 3rd line: Information on event wise variables stored in the file | *2nd line: "============================================" | ||
*3rd line: Information on event wise variables stored in the file | |||
{| class="wikitable" style="text-align:left" border="1" cellpadding="2" cellspacing="0" | {| class="wikitable" style="text-align:left" border="1" cellpadding="2" cellspacing="0" | ||
|- | |- | ||
| nucleon: | | I: | ||
| 0 (line index) | |||
|- | |||
| ievent: | |||
| eventnumber running from 1 to XXX | |||
|- | |||
| genevent: | |||
| trials to generate this event | |||
|- | |||
| process: | |||
| pepsi subprocess (LST(23)), for details see table above | |||
|- | |||
| subprocess: | |||
| pythia subprocess (LST(24)), for details see table above | |||
|- | |||
| nucleon: | |||
| hadron beam type (LST(22)) | |||
|- | |||
| struckparton: | |||
| parton hit in the target (LST(25)) | |||
|- | |- | ||
| | | partontrack: | ||
| # or parton track (LST(26)) | |||
|- | |- | ||
| truey, trueQ2, truex, trueW2, trueNu: | |||
| are the kinematic variables of the event. | |||
| truey, trueQ2, truex, trueW2, trueNu: | |||
|- | |- | ||
| | | | ||
| If radiative corrections are turned on they are different from what is calculated from the scattered lepton. | |||
|- | |- | ||
| | | | ||
| If radiative corrections are turned off they are the same as what is calculated from the scattered lepton | |||
|- | |- | ||
| mcfixedweight | | mcfixedweight | ||
| weight calculated from generation limits | |||
|- | |- | ||
| weight | | weight | ||
| total weight including everything | |||
|- | |- | ||
| dxsec | | dxsec | ||
| cross section included in the weight | |||
|- | |- | ||
| mcextraweight | | mcextraweight | ||
| Pepsi total cross section in pb from numerical integration parl(23) | |||
|- | |- | ||
| dilut, F1, F2, A1, A2, R, Depol, d, eta, eps, chi | | dilut, F1, F2, A1, A2, R, Depol, d, eta, eps, chi | ||
| true variables needed to calculate g1 | |||
|- | |- | ||
| gendilut, genF1, genF2, genA1, genA2, genR, genDepol, gend, geneta, geneps, genchi | | gendilut, genF1, genF2, genA1, genA2, genR, genDepol, gend, geneta, geneps, genchi | ||
| variables needed to calculate g1 | |||
|- | |- | ||
| SigRadCor: | | SigRadCor: | ||
| information used and needed in the radiative correction code | |||
|- | |- | ||
| EBrems: | | EBrems: | ||
| energy of the radiative photon in the nuclear rest frame | |||
|- | |- | ||
| nrTracks: | | nrTracks: | ||
| number of tracks in this event, includes also virtual particles | |||
|} | |} | ||
* 4th line: "============================================" | |||
* 5th line: Information on track wise variables stored in the file | *4th line: "============================================" | ||
*5th line: Information on track wise variables stored in the file | |||
{| class="wikitable" style="text-align:left" border="1" cellpadding="2" cellspacing="0" | {| class="wikitable" style="text-align:left" border="1" cellpadding="2" cellspacing="0" | ||
|- | |- | ||
|K(I,2): | | I: | ||
|- | | line index, runs from 1 to nrTracks | ||
|K(I,3): || line number of | |- | ||
| K(I,1): | |||
| status code KS (1: stable particles 11: particles which decay 55; radiative photon) | |||
|- | |||
| K(I,2): | |||
| particle KF code (211: pion, 2112:n, ....) | |||
|- | |||
| K(I,3): | |||
| line number of parent particle | |||
|- | |||
| K(I,4): | |||
| normally the line number of the first daughter; it is 0 for an undecayed particle or unfragmented parton | |||
|- | |||
| K(I,5): | |||
| normally the line number of the last daughter; it is 0 for an undecayed particle or unfragmented parton. | |||
|- | |||
| P(I,1): | |||
| px of particle | |||
|- | |||
| P(I,2): | |||
| py of particle | |||
|- | |||
| P(I,3): | |||
| pz of particle | |||
|- | |||
| P(I,4): | |||
| Energy of particle | |||
|- | |- | ||
| | | P(I,5): | ||
| mass of particle | |||
|- | |||
| V(I,1): | |||
| x vertex information | |||
|- | |||
| V(I,2): | |||
| y vertex information | |||
|- | |||
| V(I,3): | |||
| z vertex information | |||
|- | |||
|V(I,1): | |||
|- | |||
|- | |||
|V(I,3): | |||
|} | |} | ||
* 6th line: "============================================" | |||
* 7th line: event information for first event | *6th line: "============================================" | ||
* 8th line: "============================================" | *7th line: event information for first event | ||
* 9th to X-1 line: trackwise info of 1st event | *8th line: "============================================" | ||
* Xth line "=============== Event finished ===============" | *9th to X-1 line: trackwise info of 1st event | ||
*Xth line "=============== Event finished ===============" | |||
'''the information from line 7 to X repeats for each event.''' | '''the information from line 7 to X repeats for each event.''' | ||
=== How to analyze events === | === How to analyze events === | ||
===== MC normalization (still under construction)===== | *create a root tree | ||
there are root macros available to convert the output txt-files into root trees.<br/>Details how to run the macros can be found [https://wiki.bnl.gov/eic/index.php/ROOT [here]] | |||
===== MC normalization (still under construction) ===== | |||
to normalize your counts to cross section you need two informations | to normalize your counts to cross section you need two informations | ||
* the total number of trials (NGEN(0,3)), it is printed to the screen/logfile if PYTHIA finishes | |||
* the total integrated cross section (PARI(1)), the unit is microbarn (10^-6), it is printed to the screen/logfile if PYTHIA finishes | *the total number of trials (NGEN(0,3)), it is printed to the screen/logfile if PYTHIA finishes | ||
*the total integrated cross section (PARI(1)), the unit is microbarn (10^-6), it is printed to the screen/logfile if PYTHIA finishes | |||
==> count * total integrated cross section /total number of trials | ==> count * total integrated cross section /total number of trials | ||
to calculate the corresponding luminosity | to calculate the corresponding luminosity | ||
==> total number of trials/ total integrated cross section | ==> total number of trials/ total integrated cross section | ||
== Documentation on Radiative Corrections: == | == Documentation on Radiative Corrections: == | ||
the code implemented in PTHIA to calculate radiative corrections is called RADGEN<br/>The writeup on it can be found here [http://arXiv.org/pdf/hep-ph/9906408 [hep-ph/9906408]]<br/>The following steps have been done to implement it in PYTHIA: | |||
*change the subroutine pygaga.f so it calls radgen after you have thrown y and Q2 | |||
*get the true y and Q2 from radgen and the radiated photon | |||
*Pythia will continue to now generate an event based on this y and Q2 | |||
*Pythia still operates under accept reject, the extra weigt from the radiative corrections is absorbed in the flux factor | |||
[[Category:Event Generators]] | [[Category:Event Generators]] |
Revision as of 15:40, 3 June 2019
By now it is better to use DJANGOH for polarised studies as it is the more complete generator
PEPSI (Polarised Electron Proton Scattering Interactions) [1] is a Monte Carlo generator for polarised deep inelastic scattering (pDIS). It is based on the LEPTO 6.5 Monte Carlo for unpolarised DIS.
PEPSI References
(1) "PEPSI - a Monte Carlo generator for polarized leptoproduction", L. Mankiewicz, A. Schäfer and M. Veltri, Comp. Phys. Comm. 71, 305-318 (1992) PEPSI.paper.pdf.
Parton distribution functions
The distribution function to use in polarised leptoproduction is set via the variable LST(15) in the LEPTO COMMON block /LEPTOU/. Tables 1 and 2 list internal allowed values of LST(15) for polarised and unpolarised distributions respectively.
Pepsi is linked with the pdflib such all PDFs included in there can be used by setting LST(15) to the respective PDF-ID
PEPSI processes important in ep
Subprocess | # | Description |
---|---|---|
DIRECT | ||
γ∗q → q | 1 | LO DIS |
γ∗ q → qg | 2 | QCDC |
γ∗ g → q qbar | 3 | PGF |
QCDC: QCD-Compton, radiation of a gluon from incoming or outgoing quark lines
PGF: Photon Gluon Fusion
Running PEPSI
the code can be found on the afs directory for EIC at BNL
"/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI"
this code is based on PEPSI/LEPTO and was modified to include radiative corrections using RadGen.
The main program is in the same directory and called pepsiMaineRHIC_noradcorr.f / pepsiMaineRHIC_radcorr.f, several other routines are needed, which are in the same directory.
The executable is in the same directory and called pepsieRHICnoRAD / pepsieRHICwithRAD
There are several steer files (named: input.data. XXXXX.eic) provided in this directory to run PEPSI and get reasonable output.
How to Run the Code
Features
PEPSI has to be run twice if polarized asymmetries should be generated, once for parallel, lepton and proton beam spin direction, and once antiparallel.
Charge Current events can only be generated in the unpolarized mode.
The LST(8) can only be used different from 0 or 1 in the unpolarised mode.
without radiative corrections
pepsieRHICwithRAD < input.data_noradcor.eic.pol.anti > XXX.log
input.data_noradcor.eic.pol.anti is one of the steer file examples in the directory to run PEPSI with settings tuned for Hermes, and/or H1 and ZEUS for the antiparallel polarized cross-section
input.data_noradcor.eic.pol.par: for the parallel polarized cross-section
input.data_noradcor.eic.unpol: for the unpolarised cross-section
with radiative corrections
- create a directory called radgen in the area you want to run the code
- you either need to generate the lookup table for your cuts and beam energy settings first
pepsieRHICwithRAD < input.data_make-radcor.eic.unpol
- or you can use one of the files already generated
the files are in the directory
"/afs/rhic.bnl.gov/eic/PACKAGES/PEPSI/radgen"
and called xytab1unp.04.050.dat or xytab1ant.04.050.dat or xytab1par.04.050.dat
- to run the code than with radiative corrections simply change the steer file to either
input.data_radcor.eic.unpol or input.data_radcor.eic.pol.par or .... and
type pepsieRHICwithRAD < input.data_radcor.eic.unpol > XXX.log
Output file structure
the output file is in a text format which has the following structure.
- 1st line: PEPSI EVENT FILE
- 2nd line: "============================================"
- 3rd line: Information on event wise variables stored in the file
I: | 0 (line index) |
ievent: | eventnumber running from 1 to XXX |
genevent: | trials to generate this event |
process: | pepsi subprocess (LST(23)), for details see table above |
subprocess: | pythia subprocess (LST(24)), for details see table above |
nucleon: | hadron beam type (LST(22)) |
struckparton: | parton hit in the target (LST(25)) |
partontrack: | # or parton track (LST(26)) |
truey, trueQ2, truex, trueW2, trueNu: | are the kinematic variables of the event. |
If radiative corrections are turned on they are different from what is calculated from the scattered lepton. | |
If radiative corrections are turned off they are the same as what is calculated from the scattered lepton | |
mcfixedweight | weight calculated from generation limits |
weight | total weight including everything |
dxsec | cross section included in the weight |
mcextraweight | Pepsi total cross section in pb from numerical integration parl(23) |
dilut, F1, F2, A1, A2, R, Depol, d, eta, eps, chi | true variables needed to calculate g1 |
gendilut, genF1, genF2, genA1, genA2, genR, genDepol, gend, geneta, geneps, genchi | variables needed to calculate g1 |
SigRadCor: | information used and needed in the radiative correction code |
EBrems: | energy of the radiative photon in the nuclear rest frame |
nrTracks: | number of tracks in this event, includes also virtual particles |
- 4th line: "============================================"
- 5th line: Information on track wise variables stored in the file
I: | line index, runs from 1 to nrTracks |
K(I,1): | status code KS (1: stable particles 11: particles which decay 55; radiative photon) |
K(I,2): | particle KF code (211: pion, 2112:n, ....) |
K(I,3): | line number of parent particle |
K(I,4): | normally the line number of the first daughter; it is 0 for an undecayed particle or unfragmented parton |
K(I,5): | normally the line number of the last daughter; it is 0 for an undecayed particle or unfragmented parton. |
P(I,1): | px of particle |
P(I,2): | py of particle |
P(I,3): | pz of particle |
P(I,4): | Energy of particle |
P(I,5): | mass of particle |
V(I,1): | x vertex information |
V(I,2): | y vertex information |
V(I,3): | z vertex information |
- 6th line: "============================================"
- 7th line: event information for first event
- 8th line: "============================================"
- 9th to X-1 line: trackwise info of 1st event
- Xth line "=============== Event finished ==============="
the information from line 7 to X repeats for each event.
How to analyze events
- create a root tree
there are root macros available to convert the output txt-files into root trees.
Details how to run the macros can be found [here]
MC normalization (still under construction)
to normalize your counts to cross section you need two informations
- the total number of trials (NGEN(0,3)), it is printed to the screen/logfile if PYTHIA finishes
- the total integrated cross section (PARI(1)), the unit is microbarn (10^-6), it is printed to the screen/logfile if PYTHIA finishes
==> count * total integrated cross section /total number of trials
to calculate the corresponding luminosity
==> total number of trials/ total integrated cross section
Documentation on Radiative Corrections:
the code implemented in PTHIA to calculate radiative corrections is called RADGEN
The writeup on it can be found here [hep-ph/9906408]
The following steps have been done to implement it in PYTHIA:
- change the subroutine pygaga.f so it calls radgen after you have thrown y and Q2
- get the true y and Q2 from radgen and the radiated photon
- Pythia will continue to now generate an event based on this y and Q2
- Pythia still operates under accept reject, the extra weigt from the radiative corrections is absorbed in the flux factor