You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
_gallery_ suffers some limitations compared to _art_:
149
149
* it is not able to access `art::Run` and `art::SubRun` data products, but only `art::Event` ones.
150
-
* its interface is behind compared to `art::Event`; for example, it does not yet support `art::Event::getProduct()`.
150
+
* its interface is behind compared to `art::Event`.
151
151
152
152
`cppyy` also suffers severe limitations.
153
153
* overload resolution is tricky; apparently `cppyy` attempts to call all the possible functions/methods with the same name
154
154
in the attempt to figure out which one is the correct one, and captures the exceptions from errors.
155
155
* The error message when failing to find the appropriate function is usually of not much use.
156
-
* If the call itself throws an exception, it may be impossible to access it in Python.
156
+
* If the call itself throws an exception, it may be impossible to access that exception in Python.
157
+
* some template calls do not work (e.g. `for TPC in geom.Iterate[ROOT.geo.TPCGeo]():` does not iterate anything).
157
158
158
159
159
160
Other resources
160
161
----------------
161
162
162
163
A guide [SBN DocDB 4339](https://sbn-docdb.fnal.gov/cgi-bin/sso/ShowDocument?docid=4339), by now ancient,
163
164
describes how to use _gallery_ in C++.
165
+
An working example is [`galleryAnalysis.cpp`](https://github.com/SBNSoftware/icarusalg/blob/develop/icarusalg/gallery/examples/galleryAnalysis/C%2B%2B/galleryAnalysis.cpp) in `icarusalg``v10_04_07`.
164
166
Compared to using Python, C++ requires a careful and sometimes painstaking compilation of building instructions (e.g. Cmake);
165
167
a middle ground is the use of ROOT interpreter (Cling), which does for C++ a good deal of the magic that `cppyy` does for Python.
0 commit comments