.. .. copyright (C) 2011 .. The Icecube Collaboration .. .. $Id: index.rst 78902 2011-08-12 13:58:11Z kislat $ .. .. @version $Revision: 78902 $ .. @date $LastChangedDate: 2011-08-12 08:58:11 -0500 (Fri, 12 Aug 2011) $ .. @author Fabian Kislat $LastChangedBy: kislat $ .. _topeventcleaning-main: topeventcleaning ================ IceTray modules for IceTop event cleaning and splitting. .. _I3HLCTankPulseMerger: I3HLCTankPulseMerger -------------------- Merges high-gain (HG) and low-gain (LG) pulses inside a tank. If the charge in a high-gain pulse surpasses the saturation value obtained from VEM calibration (*HGLGCrossOver*), the charge from the best matching LG pulse is used. The best-matching LG pulse is found by looking for the LG pulse that is closest in time to the HG pulse. If the best-matching LG time differs from the HG by more than a configurable threshold (``MaxHGLGTimeDiff``), the LG pulse is discarded and the HG charge is set to NAN (not-a-number). The time is always taken from the HG pulse. Parameters ^^^^^^^^^^ ``InputVEMPulses`` An input ``I3RecoPulseSeriesMap`` calibrated to VEM. This parameter must be set to a non-empty value. ``OutputTankPulses`` Output ``I3RecoPulseSeriesMap`` containing the tank pulses. This parameter must be set to a non-empty value, and correspond to a frame object that does not yet exist. ``MaxHGLGTimeDiff`` Maximum time difference for matching HG and LG pulses. Defaults to 40ns. ``BadDomList`` Name of the frame object that contains a list of bad DOMs (e.g. obtained from the DB). Specify an empty string to not use such a list. ``BadStationList`` Name of the frame object that contains a list of bad stations. The module :ref:`I3IceTopSanityChecks` from :ref:`tpx-main` supplies such a list. Specify empty string to not use such a list. ``ExcludedStations`` Stations excluded by this module because there were LG pulses without HG partners will be written to the frame with this name. If set to an empty string this list will not be written out, but a warning is displayed. I3TopHLCClusterCleaning ----------------------- Splits events that are separated in time. First, station signals are built from corresponding pulses in tanks A and B by averaging their location and time. Then, these are ordered in time and events are split if subsequent pulses do not fulfill the following condition: \|Δt\| < \|Δ\ **x**\|/c + t\ :subscript:`tol`, where t\ :subscript:`tol` is a time tolerance (``InterStationTimeTolerance``). A similar condition is imposed when the station pulses are built (``IntraStationTimeTolerance``). Split events are written to one or more new *P* frames. Parameters ^^^^^^^^^^ ``InputPulses`` Input ``I3RecoPulseSeriesMap``. This should consist of merged tank pulses created by :ref:`I3HLCTankPulseMerger`. ``OutputPulses`` Name of the output pulses in the *P* frame. The module actually creates ``I3RecoPulseSeriesMapMask``\ s. These, however, can be handled by all subsequent reconstruction modules without changes, because they are handled correctly by ``I3Frame``. ``BadStationList`` List of bad stations provided by previous modules. ``ExcludedStations`` List of stations excluded by this module. Stations are excluded, if no station pulses could be built. ``InterStationTimeTolerance`` The t\ :subscript:`tol` in the formula above. Defaults to 200ns. ``IntraStationTimeTolerance`` Equivalent of ``InterStationTimeTolerance`` when building station pulses. Defaults to 200ns. KeepOnlyLargestEvent -------------------- Module that discards all but the largest sub-event after splitting. .. note:: This module is implemented in python. This is how you use it:: from icecube.topeventcleaning.modules import KeepOnlyLargestEvent tray.AddModule(KeepOnlyLargestEvent, 'keep_only_larges_event', Pulses = 'NameOfPulseMaskInFrame' ) Parameters ^^^^^^^^^^ ``Pulses`` ``I3RecoPulseSeriesMapMask`` in the *P* frames. Will be extracted from all sub-events of a *Q* frame. Only the *P* frame with the largest number of pulses will be kept.