topeventcleaning
IceTray modules for IceTop event cleaning and splitting.
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 I3IceTopSanityChecks from tpx 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 + ttol,
where ttol 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 I3HLCTankPulseMerger.
- OutputPulses
- Name of the output pulses in the P frame.
The module actually creates I3RecoPulseSeriesMapMasks.
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 ttol 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.