icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment module

The core OfflineMuonFilter segment for offline filtering of muon events in IceCube data.

icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment.MuonOfflineFilter(tray, name='OfflineMu_24')

Run the OfflineMuonFilter.

Parameters:
  • tray (icetray.I3Tray) – The I3Tray object.

  • name (str, optional) – The name of the segment. Defaults to “OfflineMu_24”.

icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment.OfflineMuonReconstructions(tray, name='OfflineMu_24_Reconstructions')

Run the reconstructions for the offline muon filter.

Parameters:
  • tray (icetray.I3Tray) – The I3Tray object.

  • name (str, optional) – The name of the segment. Defaults to “OfflineMu_24_Reconstructions”.

icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment.passes_offline_muon(frame)

Check whether this event passes the offline muon filter

icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment.precut_stream(frame)

Decide whether to run the pre-cuts

icecube.offline_filterscripts.filter_segments.muon_filter.MuonTraySegment.select_online_filters(frame)

Select only events passing online MuonFilter_23, OnlineL2Filter_23, HighQFilter_23.

Note: This is awkward, since we want to pass this to IceHive, which will give us an I3FramePacket. This shows up as a C++ icecube._icetray.vector_I3Frame, which python doesn’t directly know how to handle. To get around this, we just have to check whether this frame is an I3Frame or an I3FramePacket.