Laputop (the full reconstruction) ********************************* :authors: Katherine Rawlins (krawlins@alaska.edu), Tom Feusels (tom.feusels@ugent.be) What is Laputop? ================ Laputop is a maximum-likelihood reconstruction algorithm for IceTop cosmic ray air shower events. It is built in the Gulliver framework, so its Minimizer, Seed, Parametrization, and Likelihood settings are all configurable in a number of different ways, and these services are used by a "Fitter" module. In its "typical" use for IceTop events, a seed is formed from the center-of-gravity ("ShowerCOG") fit for core position, combined with a planewave-direction ("ShowerPlane") fit for shower direction. However, Laputop can be run with different seeds, by changing the arguments to the :cpp:class:`I3LaputopSeedService`. The I3LaputopFitter module can be configured to run in up to four distinct "steps", with different free parameters specified for each step. Using different :cpp:class:`I3LaputopParametrization` arguments, the user can choose to fit the track core position (x and y), track direction (:math:`\theta`, :math:`\phi`, and time), the LDF parameters (:math:`S_{125}`, beta), and the three parameters defining the shower front's curvature (parabola constant A, and Gaussian "nose" constants D and N). The likelihood function (:cpp:class:`I3LaputopLikelihood`) can compute either a charge-based likelihood based on an expected lateral distribution function (LDF), or a timing-based likelihood based on the curvature of the expected shower front (Curvature), or compute both at once in a "combined" fit. The usual LDF used is the "Double Logarithmic Parabola" or "DLP": .. math:: {\rm VEM}(R) = S_{125} \cdot \left(\frac{R}{125\rm m}\right)^{-\beta-\kappa\cdot\log_{10}(R/125{\rm m})} The two free parameters is this LDF shape are: :math:`S_{125}`, which is the signal per tank in 125m distance from the core, converted to VEM, and :math:`\beta`, which is a measure of the slope of the LDF, related to the "age" parameter of the NKG function by: :math:`{\rm age} = -0.838(6)\beta_{100} + 3.399(15)`, where :math:`\kappa = 0.30264` seems to be a constant for hadronic showers. Internally the logarithms of the charges are used, because the probability distribution of these is Gaussian. The fluctuations are parametrised by two powerlaws with a knee at about 1.5 VEM. The expectation from this LDF assumes no snow coverage, so it is adjusted downward to account for the attenuation due to snow. This attenuation is controlled by a :cpp:class:`I3SnowAttenuationServiceBase` (see :doc:`Snow Attenuation Services ` for more info). The usual Curvature function used is the "parabola with a Gaussian nose": .. math:: t(R)/{\rm ns} = N (\exp(-r^2/D^2) - 1) - A r^2. Using this timing likelihood is typically done together with specifying the track direction and vertex time (:math:`\theta`, :math:`\phi`, t) as additional free parameters in the I3LaputopParametrizationService, since the shower direction is most strongly related to the timing of the hits. The name "Laputop" is a combination of a literary reference and a description of what the code does. "Laputa" is the name of a floating city in Gulliver's Travels (appropriate for a code which deals with a detector which floats above the rest of IceCube?), and "Top" reminds us that this is an IceTop reconstruction. User's Guide ============ .. toctree:: :maxdepth: 2 casual_users advanced_users differences developers History, links and resources ============================ Laputop replaced an older reconstruction code "I3TopLateralFit", which produced a result commonly named "ShowerCombined" in the frame. Most of the functionality of I3TopLateralFit is also present in Laputop. But because of the modular structure of Gulliver, Laputop is designed to do it in a way which is more flexible to the user, and easier to modify by developers. Some improvements to the algorithm were discovered as part of the process of development. Details about the original lateral fit can found in the report "Klepser, Van Overloop, Kislat: A Lateral Distribution Function and Fluctuation Parametrisation for IceTop" (http://internal.icecube.wisc.edu/reports/details.php?type=report&id=icecube%2F200702001). These documents trace the very early history of the development of the project in 2011 and 2012: * Kath's very first talk about the project on cr-wg call: :docushare:`Docushare 6/29/2011 <58361>` * Kath's second talk about the project on cr-wg call: :docushare:`Docushare 7/13/2011 <58453>` * Kath's overview talk at Uppsala pre-meeting: `Indico 9/17/2011 `_ * Tom's talk about the project on cr-wg: :docushare:`Docushare 1/11/2012 <59713>` * Tom's second talk about the project on cr-wg: :docushare:`Docushare 1/25/2012 <59777>` More about the Gulliver Framework: * Link to :wiki:`wiki page about Gulliver `