Differences
This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision | ||
hepsim:jas4pp [2021/02/14 03:14] hepsim17 [Reading ROOT files] |
hepsim:jas4pp [2021/02/17 16:15] hepsim17 [Reading ROOT files] |
||
---|---|---|---|
Line 41: | Line 41: | ||
* Downloading and searching HepSim data | * Downloading and searching HepSim data | ||
* Processing ProMC files from HepSim | * Processing ProMC files from HepSim | ||
+ | * Processing ROOT files created by the Delphes program for fast simulation | ||
* Running over SLCIO files with Geant4 simulated / reconstructed events. | * Running over SLCIO files with Geant4 simulated / reconstructed events. | ||
* Data analysis (jets, physics vectors, histogram packages) | * Data analysis (jets, physics vectors, histogram packages) | ||
- | * Visualisation | + | * Visualization |
- | You can find more details in [[https:// | + | You can find more details in [[https:// |
Line 198: | Line 199: | ||
====== | ====== | ||
- | Jas4pp natively reads ROOT files including files created using ROOT (versions 3, 4, 5 and 6 are supported). | + | Jas4pp natively reads commonly used objects and data structures from [[https:// |
- | One can find some examples in the directory " | + | ROOT files can be loaded using the Jas4pp menu [File]-[Open data source]-[Root file] (*.root). |
- | Here is a Jython/ | + | In addition, one can work with ROOT files using Python/ |
+ | One can find some examples in the directory " | ||
<hidden Show example of a Python code here> | <hidden Show example of a Python code here> | ||
Line 316: | Line 318: | ||
The script that call these browsers | The script that call these browsers | ||
+ | |||
+ | To read ROOT files from Delphes simulations, | ||
+ | [[https:// | ||
+ | getFloat, getDouble, getInt, and getBool. But first, explore the Delphes ROOT file using the browser shown above. | ||
+ | |||
+ | Here is an example that uses high-level classes to read transverse momentum (PT) and pseudorapidity (ETA) of Monte Carlo particles: | ||
+ | |||
+ | |||
+ | <hidden Click here to show a Python code to read Delphes files> | ||
+ | <code python> | ||
+ | from hep.io.root import RootFileReader | ||
+ | from rootio import * | ||
+ | |||
+ | reader = RootFileReader(" | ||
+ | tree = reader.get(" | ||
+ | maxevents=tree.getEntries() | ||
+ | branches=tree.getBranches() | ||
+ | print "Nr of events=", | ||
+ | print "Nr of branches=", | ||
+ | print " | ||
+ | for l in xrange( branches.size() | ||
+ | print " | ||
+ | |||
+ | particles=tree.getBranch(" | ||
+ | |||
+ | ptEvents=Delphes.getFloat(particles," | ||
+ | etaEvents=Delphes.getFloat(particles," | ||
+ | |||
+ | from jhplot import * | ||
+ | h1 = H1D(" | ||
+ | h2 = H1D(" | ||
+ | for i in xrange(tree.getEntries()): | ||
+ | | ||
+ | for j in xrange(len(pt)): | ||
+ | | ||
+ | | ||
+ | c=HPlot(" | ||
+ | c.visible() | ||
+ | c.setAutoRange() | ||
+ | c.draw(h1) | ||
+ | |||
+ | c.cd(2,1) | ||
+ | c.setAutoRange() | ||
+ | c.draw(h2) | ||
+ | </ | ||
+ | </ | ||
+ | |||
+ | {{: | ||
+ | |||
+ | <note warning> | ||
====== Using GUI mode ====== | ====== Using GUI mode ====== |