Both sides previous revision
Previous revision
Next revision
|
Previous revision
|
hepsim:usage_truth [2017/02/22 14:29] hepsim17 |
hepsim:usage_truth [2020/05/22 02:48] hepsim17 |
====== Plotting distributions ====== | ====== Plotting distributions ====== |
| |
[[http://atlaswww.hep.anl.gov/hepsim/| HepSim repository]] can be used | [[https://atlaswww.hep.anl.gov/hepsim/| HepSim repository]] can be used |
for plotting any distribution or differential cross section using truth-level (EVGEN) files. | for plotting any distribution or differential cross section using truth-level (EVGEN) files. |
Many HepSim MC samples include *.py scripts to calculate differential cross sections. You can run | Many HepSim MC samples include *.py scripts to calculate differential cross sections. You can run |
As before, make sure that [[http://java.com/en/download/index.jsp|Java 7]] and above is installed (check it as "java -version"). | As before, make sure that [[http://java.com/en/download/index.jsp|Java 7]] and above is installed (check it as "java -version"). |
| |
===== Streaming data over the network ===== | ====== Streaming over the network ====== |
| |
You can run validation scripts in a batch mode as: | You can run validation scripts in a batch mode as: |
| |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py |
hs-run ttbar_mg5.py | hs-run ttbar_mg5.py |
</code> | </code> |
| |
Another approach is to use [[http://atlaswww.hep.anl.gov/asc/jas4pp |Jas4pp]] or [[http://jwork.org/dmelt/|DataMelt]]. Such programs | Another approach is to use [[https://atlaswww.hep.anl.gov/asc/jas4pp |Jas4pp]] or [[http://datamelt.org/|DataMelt]]. Such programs |
give more flexibility and more libraries for analysis. | give more flexibility and more libraries for analysis. |
In this example, we will run a Python script that downloads data from URL into the computer memory and runs it in a batch mode. First, you will need an analysis code from HepSim. Look at ttbar sample from Madgraph: [[http://atlaswww.hep.anl.gov/hepsim/info.php?item=15|ttbar_mg5]]. Find the URL location of the analysis script ("ttbar_mg5.py") located at the bottom of this page. Then copy the URL link of the file *.py using the right mouse button ("Copy URL Location"). Let us make a calculation of differential ttbar cross section. | In this example, we will run a Python script that downloads data from URL into the computer memory and runs it in a batch mode. First, you will need an analysis code from HepSim. Look at ttbar sample from Madgraph: [[https://atlaswww.hep.anl.gov/hepsim/info.php?item=15|ttbar_mg5]]. Find the URL location of the analysis script ("ttbar_mg5.py") located at the bottom of this page. Then copy the URL link of the file *.py using the right mouse button ("Copy URL Location"). Let us make a calculation of differential ttbar cross section. |
| |
Here is how to process the analysis using [[http://atlaswww.hep.anl.gov/asc/jas4pp | Jas4pp]]: | Here is how to process the analysis using [[https://atlaswww.hep.anl.gov/asc/jas4pp | Jas4pp]]: |
| |
<code bash> | <code bash> |
wget http://atlaswww.hep.anl.gov/asc/jas4pp/download/current.php -O jas4pp.tgz | wget https://atlaswww.hep.anl.gov/asc/jas4pp/download/current.php -O jas4pp.tgz |
tar -zvxf jas4pp.tgz | tar -zvxf jas4pp.tgz |
cd jas4pp | cd jas4pp |
source ./setup.sh # takes 5 sec for first-time optimization | source ./setup.sh # takes 5 sec for first-time optimization |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # get the HepSim script | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # get the HepSim script |
fpad ttbar_mg5.py # process it in a batch mode. | fpad ttbar_mg5.py # process it in a batch mode. |
</code> | </code> |
Look at the "example" directory of the Jas4pp installation. It has a several examples of how to process the ProMC files. | Look at the "example" directory of the Jas4pp installation. It has a several examples of how to process the ProMC files. |
| |
Similarly, you can use a more complex [[http://jwork.org/dmelt/|DataMelt]]: | Similarly, you can use a more complex [[https://datamelt.org|DataMelt]]: |
<code bash> | <code bash> |
wget -O dmelt.zip http://jwork.org/dmelt/download/current.php # get DMelt | wget -O dmelt.zip http://jwork.org/dmelt/download/current.php # get DataMelt |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # analysis script | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # analysis script |
unzip dmelt.zip | unzip dmelt.zip |
./dmelt/dmelt_batch.sh ttbar_mg5.py | ./dmelt/dmelt_batch.sh ttbar_mg5.py |
</code> | </code> |
| |
If you want to see a pop-up canvas with the output histogram on your screen, change the line "c1.visible(False)" to "c1.visible()" and comment out "sys.exit(0)" at the very end of the "ttbar_mg5.py" macro. You can change the output format from "SVG" to "PDF", "EPS" or "PNG". Look at the [[http://jwork.org/dmelt/api/doc.php/jhplot/package-summary | Java API]]. | If you want to see a pop-up canvas with the output histogram on your screen, change the line "c1.visible(False)" to "c1.visible()" and comment out "sys.exit(0)" at the very end of the "ttbar_mg5.py" macro. You can change the output format from "SVG" to "PDF", "EPS" or "PNG". Look at the [[http://datamelt.org/api/doc.php/jhplot/package-summary | Java API]]. |
| |
===== Using downloaded ProMC files ==== | |
| ====== Using Java WebStart ====== |
| |
| |
| Many "Info" pages of HepSim have Jython (Python) scripts for validation and analysis. One can run such scripts from the web browsers using the Java Web Start technology. Click the "Launch" button. You will see an editor. Then click the "Run" button to process events. |
| |
| To use Java Web Start, you should configure Java permissions: For Linux/Mac, run "ControlPanel", go to the "Security" tab and add "http://atlaswww.hep.anl.gov" to the exception list. For Windows, find "Java Control Panel" and do the same. Read [[https://www.java.com/en/download/help/java_blocked.xml|Why are Java applications blocked by your security settings]]. In addition, if you are a Mac user, you should allow execution of programs outside Mac App Store. |
| |
| |
| ====== Downloaded ProMC files ====== |
| |
The above approach depends on network availability at the time when you do the analysis. | The above approach depends on network availability at the time when you do the analysis. |
| |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # get analysis scrip | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5/macros/ttbar_mg5.py # get analysis scrip |
hs-get http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5 ttbar_mg5 | hs-get https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/ttbar_mg5 ttbar_mg5 |
./dmelt/dmelt_batch.sh ttbar_mg5.py ttbar_mg5 10000 | ./dmelt/dmelt_batch.sh ttbar_mg5.py ttbar_mg5 10000 |
</code> | </code> |
| |
Similarly, you can use [[http://atlaswww.hep.anl.gov/asc/jas4pp | Jas4pp]]. | Similarly, you can use [[https://atlaswww.hep.anl.gov/asc/jas4pp | Jas4pp]]. |
| |
===== Running in a GUI mode ==== | ====== Running in a GUI mode ====== |
| |
You can perform short validation analysis using an editor as: | You can perform short validation analysis using an editor as: |
It will open the Python script for editing. Next, run this script by clicking the image of green running man on the status bar (or press [F8]). | It will open the Python script for editing. Next, run this script by clicking the image of green running man on the status bar (or press [F8]). |
| |
===== A GUI mode using URL dialog ==== | ====== Using GUI URL dialogue ====== |
| |
If you use DMelt, you can run this code using a more conventional editor: | If you use DMelt, you can run this code using a more conventional editor: |
First, download any ProMC file, i.e. | First, download any ProMC file, i.e. |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/qcd_pythia8/pythia100qcd_001.promc | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/qcd_pythia8/pythia100qcd_001.promc |
</code> | </code> |
| |
| |
<code bash> | <code bash> |
hs-view http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/gamma_mcfm/gamma100tev_0000000.promc | hs-view https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/gamma_mcfm/gamma100tev_0000000.promc |
</code> | </code> |
| |
or: | or: |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/gamma_mcfm/gamma100tev_0000000.promc | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/gamma_mcfm/gamma100tev_0000000.promc |
hs-view gamma100tev_0000000.promc | hs-view gamma100tev_0000000.promc |
</code> | </code> |
You can also open a script as: | You can also open a script as: |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/8tev/gamma_jetphox.py | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/8tev/gamma_jetphox.py |
./dmelt.sh gamma_jetphox.py | ./dmelt.sh gamma_jetphox.py |
</code> | </code> |
| |
Alternatively, open this script in the DMelt editor and press run (or [F8]). | Alternatively, open this script in the DataMelt editor and press run (or [F8]). |
| |
NLO event record includes 4-momenta of particles and event weights (double values). In addition, deviations form central weights are included as an array of integer values as: | NLO event record includes 4-momenta of particles and event weights (double values). In addition, deviations form central weights are included as an array of integer values as: |
<code bash> | <code bash> |
mkdir Higgs; cd Higgs; | mkdir Higgs; cd Higgs; |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/higgsjet_gamgam_mcfm/macros/higgsjet_gamgam_mcfm.py | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/100tev/higgsjet_gamgam_mcfm/macros/higgsjet_gamgam_mcfm.py |
wget -O dmelt.zip http://sourceforge.net/projects/dmelt/files/latest/download | wget -O dmelt.zip http://sourceforge.net/projects/dmelt/files/latest/download |
unzip dmelt.zip | unzip dmelt.zip |
</code> | </code> |
| |
This example runs "higgsjet_gamgam_mcfm.py" code using online files and creates a Higgs differential cross section with PDF uncertainties. We use DMelt to do the calculations (after updating one jar file). You can also use ROOT/C++ to do the same. | This example runs "higgsjet_gamgam_mcfm.py" code using online files and creates a Higgs differential cross section with PDF uncertainties. We use DataMelt to do the calculations (after updating one jar file). You can also use ROOT/C++ to do the same. |
| |
| |
| |
<code bash> | <code bash> |
wget http://mc.hep.anl.gov/asc/hepsim/events/pp/8tev/gamma_jetphox/ggd_mu1_45_2000_run0_atlas50.promc | wget https://mc.hep.anl.gov/asc/hepsim/events/pp/8tev/gamma_jetphox/ggd_mu1_45_2000_run0_atlas50.promc |
promc_proto ggd_mu1_45_2000_run0_atlas50.promc | promc_proto ggd_mu1_45_2000_run0_atlas50.promc |
promc_code | promc_code |
| |
This creates directories with the C++/CPython/Java analysis codes. | This creates directories with the C++/CPython/Java analysis codes. |
For a longer description, read the [[http://atlaswww.hep.anl.gov/asc/promc/ | ProMC manual]]. | For a longer description, read the [[https://atlaswww.hep.anl.gov/asc/promc/ | ProMC manual]]. |
| |
For C++/ROOT, you can use {{:hepsim:promc_root_example.tgz| this C++/ROOT example package}}. | For C++/ROOT, you can use {{:hepsim:promc_root_example.tgz| this C++/ROOT example package}}. |
Use this Doxygen description to work with C++: | Use this Doxygen description to work with C++: |
| |
* [[http://atlaswww.hep.anl.gov/asc/promc/doc/cpp_promc/html/annotated.html | annotated classes]] - for complete MC event records | * [[https://atlaswww.hep.anl.gov/asc/promc/doc/cpp_promc/html/annotated.html | annotated classes]] - for complete MC event records |
* [[http://atlaswww.hep.anl.gov/asc/promc/doc/cpp_pronlo/html/annotated.html | annotated classes]] - for NLO event records | * [[https://atlaswww.hep.anl.gov/asc/promc/doc/cpp_pronlo/html/annotated.html | annotated classes]] - for NLO event records |
| |
| |
| |
<code bash> | <code bash> |
wget http://atlaswww.hep.anl.gov/asc/hepsim/soft/hepsim-cpp.tgz -O - | tar -xz; | wget https://atlaswww.hep.anl.gov/asc/hepsim/soft/hepsim-cpp.tgz -O - | tar -xz; |
cd hepsim-cpp/; | cd hepsim-cpp/; |
make | make |
====== Converting to LCIO ====== | ====== Converting to LCIO ====== |
| |
ProMC files can be converted to LCIO files for full detector simulations. This is an example of such conversion (it requires Java installed): | ProMC files can be converted to LCIO or STDHEP |
| files for full detector simulations. See [[hepsim:dev_full|LCIO/STDHEP section]] for detail. |
| |
| Note that the converters are included inside the ProMC package (see the directory "examples"). Here is an example: |
| |
| <hidden> |
<code bash> | <code bash> |
wget http://atlaswww.hep.anl.gov/asc/promc/download/current.php -O ProMC.tgz | wget https://atlaswww.hep.anl.gov/asc/promc/download/current.php -O ProMC.tgz |
tar -zvxf ProMC.tgz | tar -zvxf ProMC.tgz |
cd examples/promc2lcio | cd examples/promc2lcio |
java promc2lcio file.promc file.slcio | java promc2lcio file.promc file.slcio |
</code> | </code> |
The last commends creates file.slcio with "MCparticle" container. | </hidden> |
| |
| The last command creates file.slcio with the "MCParticle" container. |
| |
| |
| |
Many scripts of HepSim create SVG images and a cross platform | Many scripts of HepSim create SVG images and a cross platform |
[[http://jwork.org/dmelt/wikidoc/doku.php?id=man:io:crossplatform | JDAT data format based on HBook]]. In order to convert JDAT files into CPython or ROOT object, read the data using xml.dom. This is a conversion to the CPython: | [[https://handwiki.org/wiki/DMelt:IO/8_Cross_Paltform_IO | JDAT data format based on HBook]]. In order to convert JDAT files into CPython or ROOT object, read the data using xml.dom. This is a conversion to the CPython: |
| |
<hidden> | <hidden> |
<code python> | <code python> |
!/usr/local/bin/python | #!/usr/local/bin/python |
# Convert jdat to the standard Python | # Convert jdat to the standard Python |
# This can be used for converting data to pyROOT | # This can be used for converting data to pyROOT |