This is a package for reading the LCIO file format, used for studies of the International Linear Collider, and other future collider concepts. See http://lcio.desy.de for details.
To install the latest version of the package, use the full path when adding the package. From the julia prompt you can type
]
add https://github.com/jstrube/LCIO.jl
We have attempted to achieve a faithful translation of the C++ API, with method names equal to those documented on the LCIO pages. Nevertheless, attempts have been made to improve the user experience. Examples:
- All collections are typed, no casting necessary
- Methods that return a
float*
ordouble*
in the C++ API return aFloat64[]
on the Julia side. - Some of the methods on the C++ side returning pointers can return
nullptr
, so need to be wrapped inif
clauses. The way to deal with this on the julia side is to use something like the following syntax:
ok, value = getReferencePoint(particle)
if ok
println(value)
end
- A notable exception is
getPosition
for hits, andgetMomentum
for particles, which we assume always return valid values
The basic construct for iterating over a file is this:
using LCIO
LCIO.open("file.slcio") do reader
for event in reader
println(getEventNumber(event))
end
end
There are more examples in the examples/
directory.