User Tools

Site Tools


community:refhepsim_analysis

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
community:refhepsim_analysis [2015/07/22 21:58]
asc
community:refhepsim_analysis [2016/04/28 15:24] (current)
asc [HepSim Analysis Primer]
Line 5: Line 5:
 For C++/ROOT, please refer [[asc:promc| ProMC web page]]. For C++/ROOT, please refer [[asc:promc| ProMC web page]].
  
-To ensure platform independence and a possibility to run programs using web browsers, validation programs are written in Jython, which is an implementation of the Python language on the Java platform.+To ensure platform independence and a possibility to run programs using web browsers [(Cross-platform validation and analysis environment for particle physics, S.V. Chekanov, I. Pogrebnyak, D. Wilbern, arXiv:1510.06638 http://arxiv.org/abs/1510.06638)], validation programs are written in Jython, which is an implementation of the Python language on the Java platform.
 Look at several links: Look at several links:
  
   * [[http://www.jython.org/jythonbook/en/1.0/| Jython book]]   * [[http://www.jython.org/jythonbook/en/1.0/| Jython book]]
-  * [[http://jwork.org/dmelt/wikidoc/doku.php?id=start| DMelt manual]]+  * [[http://jwork.org/dmelt/wikidoc/doku.php?id=start| DMelt manual (community version)]]
  
  
Line 17: Line 17:
   * "hs-ide file.py" command to launch the editor (from the hs-tools package)   * "hs-ide file.py" command to launch the editor (from the hs-tools package)
   * "hs-run file.py" command to run using a command-line ("batch mode", from the hs-tools package)   * "hs-run file.py" command to run using a command-line ("batch mode", from the hs-tools package)
 +  * [[http://atlaswww.hep.anl.gov/asc/jas4pp/| Jas4pp]]
   * [[http://jwork.org/dmelt/ |DMelt  IDE]]    * [[http://jwork.org/dmelt/ |DMelt  IDE]] 
  
Line 120: Line 121:
            e= pa.getEnergy(j)/un     # energy            e= pa.getEnergy(j)/un     # energy
            m= pa.getMass(j)/un       # mass            m= pa.getMass(j)/un       # mass
-           p=LParticle(pa.getPx(j)/un,pa.getPy(j)/un,pa.getPz(j)/un,pa.getEnergy(j)/un,pa.getMass(j)/un)+           p=LParticle(px,py,pz,e,m# fill it
 </code> </code>
 To access the PDG status code, us "pa.getPdgId(j) method. For stable particles, use the HEPEVT status code (the method "pa.getStatus(j)"). To access the PDG status code, us "pa.getPdgId(j) method. For stable particles, use the HEPEVT status code (the method "pa.getStatus(j)").
Line 203: Line 204:
                  print "pT of a leading jet =",jets[0].perp()," GeV"                   print "pT of a leading jet =",jets[0].perp()," GeV" 
 </code> </code>
-To build anti-kT jets, we use [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/JetN2|JetN2 clustering algorithm]] implemented in Java. It is a similar to FastJet N*N algorithm and typically shows +To build anti-kT jets, we use [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/JetN2|JetN2 clustering algorithm]] implemented in Java. 
 +The description of this algorithm is given in [[http://arxiv.org/abs/1510.06638]]. 
 + It is a similar to FastJet N*N algorithm and typically shows 
 a performance similar to the C++ analogue. Tests indicate that the JetN2 clustering algorithm is about twice slower that C++, but by a factor 20 faster than the traditional N^3 jet clustering algorithms. You can find benchmarking results in [[https://github.com/chekanov/hepjet/|HepJet]] github repository. a performance similar to the C++ analogue. Tests indicate that the JetN2 clustering algorithm is about twice slower that C++, but by a factor 20 faster than the traditional N^3 jet clustering algorithms. You can find benchmarking results in [[https://github.com/chekanov/hepjet/|HepJet]] github repository.
 Look at a typical example of jet clustering in the [[http://atlaswww.hep.anl.gov/hepsim/code.php?item=88&code=qcd_pythia8_ptbins_jets.py| qcd_pythia8_ptbins_jets.py code]]. Look at a typical example of jet clustering in the [[http://atlaswww.hep.anl.gov/hepsim/code.php?item=88&code=qcd_pythia8_ptbins_jets.py| qcd_pythia8_ptbins_jets.py code]].
Line 262: Line 265:
 stored inside ProMC data files: stored inside ProMC data files:
  
-  * [[http://jwork.org/dmelt/api/doc.php/jhplot/HPlot | HPlot]] - simple canvas to show graphs +===== Histograms and plots ===== 
-  * [[http://jwork.org/dmelt/api/doc.php/jhplot/H1D | H1D]] - 1D histogram + 
-  * [[http://jwork.org/dmelt/api/doc.php/jhplot/H1D | H2D]] - 2D histogram +  * [[http://jwork.org/dmelt/api/doc.php/jhplot/HPlot|HPlot]] - canvas to show X-Y data and histograms in 2D 
-  * [[http://jwork.org/dmelt/api/doc.php/hephysics/hepsim/PromcUtil|PromcUtil]] convenient method to fill arrays with particles from ProMc files+  * [[http://jwork.org/dmelt/api/doc.php/jhplot/HPlot|HPlot3D]] - canvas to show X-Y-Z data and histograms in 3D 
 +  * [[http://jwork.org/dmelt/api/doc.php/jhplot/H1D|H1D]] - 1D histogram 
 +  * [[http://jwork.org/dmelt/api/doc.php/jhplot/H1D|H2D]] - 2D histogram 
 +  * [[http://jwork.org/dmelt/api/doc.php/jhplot/P1D|P1D]] - X-Y container with support of 2-level errors 
 + 
 +See also other math and graphics classes in the [[http://jwork.org/dmelt/api/doc.php/jhplot/package-summary | jhplot package]].  
 +===== Lorentz particles and Jets ===== 
 + 
 +  * [[http://jwork.org/dmelt/api/doc.php/hephysics/hepsim/PromcUtil|PromcUtil]] convenient method to fill arrays with particles from ProMC files
   * [[http://jwork.org/dmelt/api/doc.php/hephysics/particle/LParticle|LParticle]] a HEP particle with the Lorentz transformations   * [[http://jwork.org/dmelt/api/doc.php/hephysics/particle/LParticle|LParticle]] a HEP particle with the Lorentz transformations
   * [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/FastParticle|FastParticle]] a HEP particles with precomputed Et2,Eta,Phi for jet algorithms.    * [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/FastParticle|FastParticle]] a HEP particles with precomputed Et2,Eta,Phi for jet algorithms. 
-  * [[http://jwork.org/dmlt/api/doc.php/hephysics/jet/JetN2|JetN2]] recommended kt-type jet clustering algorithms (kT, anti-kT) implemented in Java using N^2 approach, similar to FastJet +  * [[http://java.freehep.org/freehep-physics/apidocs/hep/physics/vec/package-summary.html|Physics vectors]] typical HEP physics vectors the Lorentz transformations 
-  * [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/SCJet|SCJet]] traditional kt-type jet clustering algorithms (kT, anti-kT) implemented in Java using N^3 approach.+  * [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/JetN2|JetN2]] recommended kt-type jet clustering ng algorithms (kT, anti-kT, CA) implemented in Java using N^2 approach, similar to the FastJet algorithm. Recommended for hadron collisions 
 +  * [[http://jwork.org/dmelt/api/doc.php/hephysics/jet/SCJet|SCJet]] traditional kt-type jet clustering algorithms (kT, anti-kT) for pp implemented in Java using N^3 approach (slow)  
 +  * [[http://java.freehep.org/freehep-physics/apidocs/hep/physics/jet/package-summary.html|Jets and event shapes]] traditional jet algorithms and event shapes for e+e- (Geneva, Jade, Durham jets) 
      
      
 Java implementation of the longitudinally invariant kT and anti-kT clustering algorithms uses the E-scheme to combine particles (p1+p2) and Eta-Phi space (not Rapidity-Phi). Also, Cambridge/Aachen jets are supported.   [[https://github.com/chekanov/hepjet/|HepJet on github]] shows  benchmarks of the Java implementation of the anti-KT with the original FastJet package. Java implementation of the longitudinally invariant kT and anti-kT clustering algorithms uses the E-scheme to combine particles (p1+p2) and Eta-Phi space (not Rapidity-Phi). Also, Cambridge/Aachen jets are supported.   [[https://github.com/chekanov/hepjet/|HepJet on github]] shows  benchmarks of the Java implementation of the anti-KT with the original FastJet package.
  
-See also other classes in [[http://jwork.org/dmelt/api/doc.php/jhplot/package-summary | jhplot package summary]]. +
 You can build the standard kt-jets using [[http://jwork.org/dmelt/api/doc.php/hephysics/hepsim/PromcUtil | PromcUtil]], followed by the  You can build the standard kt-jets using [[http://jwork.org/dmelt/api/doc.php/hephysics/hepsim/PromcUtil | PromcUtil]], followed by the 
-[[http://jwork.org/dmelt/api/doc.php/hephysics/jet/KTjet | KTjet]] class. Also, look at the ProMC Java API that is used to store data:+[[http://jwork.org/dmelt/api/doc.php/hephysics/jet/KTjet | KTjet]] class.  
 + 
 +===== Working with ProMC files ===== 
 + 
 +Also, look at the ProMC Java API that is used to store data:
  
   * [[http://atlaswww.hep.anl.gov/asc/promc/doc/api/promc/io/ProMCHeaderFile.ProMCHeader.html | ProMCHeader]] for MC and [[http://atlaswww.hep.anl.gov/asc/promc/doc/api/pronlo/io/ProMCHeaderFile.ProMCHeader.html | ProMCHeader]] for NLO   * [[http://atlaswww.hep.anl.gov/asc/promc/doc/api/promc/io/ProMCHeaderFile.ProMCHeader.html | ProMCHeader]] for MC and [[http://atlaswww.hep.anl.gov/asc/promc/doc/api/pronlo/io/ProMCHeaderFile.ProMCHeader.html | ProMCHeader]] for NLO
Line 286: Line 303:
 It is simplified compared to full MC simulations, and also includes additional arrays "idata" and "fdata" to store It is simplified compared to full MC simulations, and also includes additional arrays "idata" and "fdata" to store
 information on event weights and uncertainties. information on event weights and uncertainties.
 +
 +The project uses the community edition of [[http://jwork.org/dmelt/|DMelt]] project and  the FreeHEP Java Libraries.
  
  --- //[[[email protected]|Sergei Chekanov]] 2015/03/06 08:49//  --- //[[[email protected]|Sergei Chekanov]] 2015/03/06 08:49//
community/refhepsim_analysis.1437602283.txt.gz · Last modified: 2015/07/22 21:58 by asc