Lilliput¶
Maintainer: Alan Coleman <alanc@udel.edu>
The lilliput
project is a collection of Gulliver services, that
is: services that are implementations of the interfaces (base classes)
defined in the Gulliver project, for likelihood functions, minimizers,
parametrization and seed preparation. For a full description of these
interfaces and how they are used in a likelihood-based reconstruction
module, see the gulliver
and gulliver-modules
projects,
respectively.
Minimizer services¶
I3GulliverMinuit
A wrapper for the TMinuit function minimization tool in the ROOT libraries. It is the default minimizer for most reconstructions, but it is kind of a poorly documented black box and produces lots of annoying unquenchable noise.
I3GSLSimplex
A wrapper for the better documented GSL implementation of the simplex algorithm. It has not yet been proven (in
gulliver
) that this minimizer performs as good or better than Minuit, but as soon as we achieve that state, we can happily discard the old Minuit.
Parametrization services¶
I3SimpleParametrization
Parametrizes
I3Particle
objects in the most trivial way: fitted variables are just x, y, z, t, zenith, azimuth, length, energy without any clever transformations, except for the energy and the length (can be logarithmic instead of linear). Variables chosen to be fitted by configuring a positive step size for them. Bounds can be specified, but are not mandatory.
I3HalfSphereParametrization
Parametrizes
I3Particle
objects in a less trivial way: fitted variables x, y, z, t, length, and energy are treated the same way, but the direction coordinates are forced to be Cartesian by projecting them onto a tangential plane which touches the direction sphere at the direction of the initial seed for the reconstruction. This means that only half of the direction sphere is accessible, the reconstruction can not move more than 90 degrees away from the initial direction.
Seed services¶
I3BasicSeedService
Uses any number
I3Particle
objects, e.g. from a first-guess module (linefit
,dipolefit
, …) or from some other likelihood reconstruction, and prepares it as a seed for the likelihood reconstruction. For “infinite tracks” this includes shifting the vertex as close as possible to the center-of-gravity of the hits/pulses. For any event type the vertex time can be adjusted (according to various recipes) such that the distribution of time residuals of the hits/pulses is reasonable, e.g. such that the lowest time residual is zero. With a bad initial time residual distribution the minimizer might get “lost” right at the start of the search.
Note
Lilliput is an island on which the most well-known part of the story
of Gulliver’s Travels, the novel written by Jonathan Swift
(1726, amended 1735), takes place. On his first voyage the
adventurer/surgeon/captain Lemuel Gulliver is washed ashore on the
island Lilliput after a shipwreck and finds himself surrounded by
very many very small people. Originally, the idea was to host only
the minimizer services in the lilliput
project, and to host
the other services in different projects with other names of islands
and countries in the same novel, such as Brobdingnag (inhabited by
giants), Houyhnhnm (governed by horses) and Balnibarbi (mad
scientists); but this met with fierce resistance from the IceRec
overlord, so I succumbed, and crammed all services into this one
project.
Have a look at Project Gutenberg.
See also