Skip to content

Commit 298d613

Browse files
Merge pull request #10 from eduardo-rodrigues/eduardo-ostap
Added info on ostap
2 parents 1767f67 + 51ad307 commit 298d613

File tree

1 file changed

+17
-9
lines changed

1 file changed

+17
-9
lines changed

README.md

+17-9
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,7 @@ Some more advanced talks of interested:
3535
* David Beazley, "Discovering python" https://www.youtube.com/watch?v=RZ4Sn-Y7AP8.
3636
* Thomas Ballinger, "Finding closure with closures" https://www.youtube.com/watch?v=E9wS6LdXM8Y
3737

38+
3839
## Getting Python
3940

4041
| Name | Use |
@@ -81,31 +82,26 @@ General information through talks tthat maybe useful on PyData (various confere
8182
* Enthought: https://www.youtube.com/user/EnthoughtMedia
8283
* Continuum Analytics: https://www.youtube.com/channel/UCND4vKhJssAtK8p1Blfj14Q
8384

85+
8486
## Particle Physics packages
8587
| Name | Use |
8688
| ------------ | --------------- |
8789
| [numpythia](https://github.com/scikit-hep/numpythia) | Interface between FastJet and NumPy. |
8890
| [pyjet](https://github.com/scikit-hep/pyjet) | Interface between PYTHIA and NumPy. |
8991

90-
## Jupyter extensions
91-
92-
Jupyter has a wide ecosystem of extensions that can be used to extend the functionality. Some useful extensions for HEP data analysis are summarised here.
93-
94-
| Name | Use |
95-
| ------------ | --------------- |
96-
| nbdime | Simplifies diffing and merging of jupyter notebooks that are stored in version control. |
97-
| jupytext | Splits notebooks into a `.ipynb` and `.py` file for easier version control and to allow them to be run as scripts idependently of jupyter. |
9892

9993
## Tutorials
10094

101-
See tutorials here and other resources collected by [IML HEP-ML Resources](https://github.com/iml-wg/HEP-ML-Resources#tutorials)
95+
See tutorials here and other resources collected by [IML HEP-ML Resources](https://github.com/iml-wg/HEP-ML-Resources#tutorials).
96+
10297

10398
## ROOT and interoperability with ROOT
10499

105100
For many particle physics experiments, a lot of data is stored within ROOT files. This means at very least one must have the ability to read ROOT files. ROOT also serves as a tool suite designed to solve many computational problems encountered in HEP, which means that one may want to access some of this tool suite. The following packages below are worth knowing for these situations:
106101

107102
| Package name | Use | Pro | Con | Further information |
108103
| ------------ | --- | --- | --- | ------------------- |
104+
| [ostap](https://github.com/OstapHEP/ostap) | User-friendly & more intuitive interface to(Py)ROOT | Many decorations to ROOT classes | Requires C++ code compilation | |
109105
| [uproot](https://github.com/scikit-hep/uproot) | Native Python ROOT I/O | Easy to install, fast, no dependence on C++ ROOT | Although can read all ROOT files, can only write ROOT files with specific objects. | |
110106
| root_numpy, root_pandas | ROOT to/from Numpy and Pandas, like uproot | full ROOT functionality, like TFormula | slower than uproot, binary incompatibilities with different versions of ROOT | |
111107
| [ROOT conda](https://nlesc.gitbooks.io/cern-root-conda-recipes/content/installing_root_via_anaconda.html) | Using ROOT within Anaconda | Easy to get ROOT installed with PyROOT support | Not all features of ROOT and getting dated (6.04 Py2.7/3.4 since XENON1T uses that) | [Recipes](https://github.com/NLeSC/root-conda-recipes) |
@@ -115,6 +111,16 @@ For many particle physics experiments, a lot of data is stored within ROOT files
115111
| [pyhf](https://github.com/diana-hep/pyhf) | statistical analysis / fitting | pure python implementation of HistFactory specification with auto-diff enabled backends in tensorflow, pytorch, and MXNet | not yet interoperable with ROOT-based RooFit models | [pyhf](https://github.com/diana-hep/pyhf) |
116112

117113

114+
## Jupyter extensions
115+
116+
Jupyter has a wide ecosystem of extensions that can be used to extend the functionality. Some useful extensions for HEP data analysis are summarised here.
117+
118+
| Name | Use |
119+
| ------------ | --------------- |
120+
| nbdime | Simplifies diffing and merging of jupyter notebooks that are stored in version control. |
121+
| jupytext | Splits notebooks into a `.ipynb` and `.py` file for easier version control and to allow them to be run as scripts idependently of jupyter. |
122+
123+
118124
## Speeding up code
119125

120126
Often, it is not needed anymore to write C++/C routines that get wrapped since there are other ways to speed up your Python code. Namely:
@@ -126,6 +132,7 @@ Often, it is not needed anymore to write C++/C routines that get wrapped since t
126132
| [numpy](http://www.numpy.org) | Expressing your code as array options means you get native-C speeds. |
127133
| NumExpr | single pass "mapper" operations (one input → one output). |
128134

135+
129136
## Binding C/C++ to Python
130137

131138
*Before you read this, realize that this is for existing C++ code. If you want to write new C/C++ code for speed, see section above.*
@@ -145,6 +152,7 @@ At present, the best summary of how to bind code in HEP applications comes from
145152
| swig | Wrapping C++ code | Widely used. | Have to write wrapper file and feels dated. | |
146153
| Boost | Wrapping C++ code | Widely used. | Giant dependency since Boost does many other things.| |
147154

155+
148156
## Experimental codes
149157

150158
Stealing code from other physicists is its own sign of flattery. Codes that are abandoned more than two years will get struck through.:

0 commit comments

Comments
 (0)