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.