Project CoincSuite¶
Invoke with: import icecube.CoincSuite
C++ I3Modules¶
- AfterpulseDiscard¶
"AfterpulseDiscard"
(C++ I3Module)<undocumented>
- Param Discard:
Default =
False
, Immediately discard identified AfterpulseEvents as such- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MaxTimeOffset:
Default =
15000.0
, Maximum time difference to the host-event- Param OverlapFraction:
Default =
0.75
, Required fraction of overlap to the host-event- Param QTotFraction:
Default =
0.1
, Maximum fraction of qTot compared to the host-event- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TimeOffset:
Default =
3000.0
, Required time difference to the host-event
- AfterpulseTester¶
"AfterpulseTester"
(C++ I3Module)<undocumented>
- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param OverlapFraction:
Default =
0.75
, Required fraction of overlap to the host-event- Param QTotFraction:
Default =
0.1
, Maximum fraction of qTot compared to the host-event- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TimeOffset:
Default =
3000.0
, Required time difference to the host-event
- AlignmentTester¶
"AlignmentTester"
(C++ I3Module)<undocumented>
- Param CriticalAngle:
Default =
0.4363323129985824
, A critical angle between two reconstructions in [rad]- Param CriticalDistance:
Default =
20.0
, A critical Distance between tracks in [m]- Param HypoFitName:
Default =
''
, Name of the <I3Particle> Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MutualCompare:
Default =
False
, Hypo(false) -or- Mutual(true)- Param RecoFitName:
Default =
''
, Name of the <I3Particle> Fit- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- CausalConnectTester¶
"CausalConnectTester"
(C++ I3Module)A I3Module testing if two series of Pulses are connected topologically and in timing of two fractions of Pulses, test if they: are happening after each other from the COG of the respective last three and respective first three Pulses evaluate horizontal distance, vertical distance, maximum time difference and the CT-time- residual.
- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MaxHorizontalDist:
Default =
400.0
, max horizontal Distance in [m ]to still reconnect- Param MaxVerticalDist:
Default =
400.0
, max vertical Distance in [m ]to still reconnect- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TimeConeMinus:
Default =
1000.0
, negative allowed time residual in [ns] to still reconnect- Param TimeConePlus:
Default =
1000.0
, positive allowed time residual in [ns] to still reconnect- Param WallTime:
Default =
2000.0
, max Time in [ns] between Pulses fractions to still reconnect
- CylinderPulsesTester¶
"CylinderPulsesTester"
(C++ I3Module)<undocumented>
- Param CriticalRatio:
Default =
0.9
, Ratio of Pulses above which recombination is preferred- Param CylinderRadius:
Default =
50.0
, Radius of cylinder in which hits have to included- Param HypoFitName:
Default =
''
, Name of the <I3Particle>Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MutualCompare:
Default =
False
, Hypo(false) -or- Mutual(true)- Param RecoFitName:
Default =
''
, Name of the <I3Particle>Fit in the SplitFrames- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the <I3RecoPulseSeriesMap(Mask)>- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- DecisionMaker¶
"DecisionMaker"
(C++ I3Module)A class to unify all decisions of the tester modules and make a final decision, if these events should be recombined or not.
- Param Discard:
Default =
False
, Immediately discard identified AfterpulseEvents as such- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param LikeNameList:
Default =
[]
, Names of TesterModules that like to recombine- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param RecombineRecoMaps:
Default =
[]
, A List of RecoPulseSeriesMap which also should be recombined alongside- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TriggerHierarchyName:
Default =
'I3TriggerHierarchy'
, Name of the trigger hierarchy- Param TrueNameList:
Default =
[]
, Names of TesterModules that will never tell wrong- Param VetoNameList:
Default =
[]
, Names of TesterModules that veto to recombine- Param WarnOnEmptyFrames:
Default =
True
, Issue a warning when we end up with empty recclusters?
- FakeHypoFrameReverter¶
"FakeHypoFrameReverter"
(C++ I3Module)A Module that wipes away CoincSuite-keys of FAKE HypoFrames and reverts them to clean (plain) P-frames.
- Param HypoName:
Default =
''
, Name of the HypoFrame to compare- Param IcePickServiceKey:
Default =
''
, Key for an IcePick in the context that this module should check before processing physics frames.- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t
- HypoFrameCreator¶
"HypoFrameCreator"
(C++ I3Module)A I3Module that creates HypoFrames by forcefully combining all 2-permutations of SplitFrames, or if a the Parameter ‘Flagname’ is defined, only frames of which one is holding the flag will be combined.
- Param FlagName:
Default =
''
, If specified only frames which hold this Flag will combined into HypoFrames- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MaxTimeSeparation:
Default =
nan
, Maximum time separation between any two events that can be recombined- Param RecoMapName:
Default =
''
, Name of the RecoPulseSeriesMap(Mask) to recombine- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- HypoFrameFaker¶
"HypoFrameFaker"
(C++ I3Module)A Module that forces recombination keys onto frames which could act like hypothesis of a DOUBLE split (e.g. ‘in_ice’)
- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- NoiseClusterDiscard¶
"NoiseClusterDiscard"
(C++ I3Module)A Module that does ID noise events in a very crude way.
- Param Discard:
Default =
False
, Discard the frame right away (True) or just mark it with a key ‘NoiseCluster’ (False)- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param NChanLimit:
Default =
4
, Maximal number of DOMs that can participate in an NoiseCluster event- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TExtLimit:
Default =
1700
, Minimal duration of a NoiseClusterEvent
- ReducingLikelihoodTester¶
"ReducingLikelihoodTester"
(C++ I3Module)<undocumented>
- Param HypoFitName:
Default =
''
, Name of the <I3Particle> Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param LlhName:
Default =
''
, LogLikelihood service to use- Param MiniName:
Default =
''
, Minimizer service to use- Param MutualCompare:
Default =
False
, Hypo(false) -or- Mutual(true): Hypo compares recombined Pulses with the HypoFit VS individual Pulses with the HypoFit, Mutual compares recombined Pulses with the HypoFit VS individual Pulses with the RecoFit- Param ParaName:
Default =
''
, Parametrization service to use- Param RecoFitName:
Default =
''
, Name of the <I3Particle> Fit- Param ReductionFactor:
Default =
0.9
, Factor by which the likelihood has to be reduced by the recombination- Param Refit:
Default =
False
, Refit the track before calculating the LLH- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- SpeedTester¶
"SpeedTester"
(C++ I3Module)A Tester-Module testing if the ParticleFit speed of a hypoFit is comparable to light speed in vacuum.
- Param HypoFitName:
Default =
''
, Name of the Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param SpeedLowerCut:
Default =
0.3
, Minimum allowed particle speed in [m/ns] (choose wisely)- Param SpeedUpperCut:
Default =
0.2995
, Maximum allowed particle speed in [m/ns]- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- TrackLikelihoodTester¶
"TrackLikelihoodTester"
(C++ I3Module)<undocumented>
- Param AverageLlhThreshold:
Default =
10.0
, Threshold value on the average logLikelihood for which frames should be recombined- Param FitName:
Default =
''
, Name of a I3Particle object for which you’d like to know the likelihood.- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param LlhServiceName:
Default =
''
, Name of the LogLikelihood service to use- Param LlhThreshold:
Default =
5.0
, Threshold value on the logLikelihood for which frames should be recombined- Param MutualCompare:
Default =
False
, Hypo(false) -or- Mutual(true)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- TrackSystemTester¶
"TrackSystemTester"
(C++ I3Module)<undocumented>
- Param CriticalRatio:
Default =
0.9
, Ratio above which we decise to recombine- Param CylinderRadius:
Default =
50.0
, Raidus of cylinder where we gonna look for hits- Param HypoFitName:
Default =
''
, Name of the (I3Particle)Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MutualCompare:
Default =
False
, Hypo(false) -or- Mutual(true)- Param ParticleSpeed:
Default =
nan
, Adjust the Speed of the Particle to this value- Param RecoFitName:
Default =
''
, Name of the (I3Particle)Fit- Param RecoMapName:
Default =
''
, Name of the RecoPulseSeriesMap(Mask)- Param ResTimeWindow:
Default =
make_pair(-200,200)
, Residual Time Window to find Pulses within- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)
- cogCausalConnectTester¶
"cogCausalConnectTester"
(C++ I3Module)A I3Module testing if two series of Pulses are connected topologically and in timing of two fractions of Pulses, test if they: are happening after each other from the COG of the respective last three and respective first three Pulses evaluate horizontal distance, vertical distance, maximum time difference and the ct time- residual.
- Param HypoFitName:
Default =
''
, Name of the Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MaxFurthestDist:
Default =
600.0
, Maximal perpendicular distance of the outmost hit towards the track in each hit- series- Param MaxHorizontalDist:
Default =
400.0
, Maximal horizontal distance in [m] to still reconnect- Param MaxTrackDist:
Default =
200.0
, Maximal distance of COG to particle track in [m] to still reconnect- Param MaxVerticalDist:
Default =
400.0
, Maximal vertical distance in [m] to still reconnect- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TravelTimeResidual:
Default =
make_pair(-1000,1000)
, Allowed time residual window for travel between the EmissionPoints- Param WallTime:
Default =
2000.0
, Maximal time difference in [ns] between Pulses fractions to still reconnect
- impCausalConnectTester¶
"impCausalConnectTester"
(C++ I3Module)A I3Module testing if two series of Pulses are connected topologically and have correct timing Of two fractions of pulses, test if they: -are happening after each other -the last/first emission point of !direct! Cherenkov-light hitting a DOM -horizontal distance, -vertical distance, -maximum time difference -and the CT-time- residual.
- Param HitTimeResidual:
Default =
make_pair(-15,150)
, Allowed time residual window for direct hits in the consideration for EmissionPoints- Param HypoFitName:
Default =
''
, Name of the Fit in the HypoFrame to test against- Param HypoName:
Default =
'hypoframe'
, Name of the HypoFrame to compare- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MaxHorizontalDist:
Default =
400.0
, Maximal horizontal distance in [m] to still reconnect- Param MaxVerticalDist:
Default =
400.0
, Maximal vertical distance in [m] to still reconnect- Param RecoMapName:
Default =
'MaskedOfflinePulses'
, Name of the RecoPulseSeriesMap(Mask)- Param SplitName:
Default =
''
, Name of the Topological Splitter (subevent names)- Param TravelTimeResidual:
Default =
make_pair(-1000,1000)
, Allowed time residual window for travel between the EmissionPoints- Param WallTime:
Default =
2000.0
, Maximal time difference in [ns] between Pulses fractions to still reconnect
Python I3Modules¶
- Counter¶
Counter
(Python I3Module)A counter function of wrong splits: can also select only these events that were wrong to be pushed
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param PushWrongMinus:
Default =
False
, Push only those frames which were counted WrongMinus- Param PushWrongPlus:
Default =
False
, Push only those frames which were counted WrongPlus- Param SplitName:
Default =
'toposplit'
, Name of the split- Param WeightKey:
Default =
''
, Where to find the key storing th event wheight
- FilterSelector¶
FilterSelector
(Python I3Module)Selects filters from the FilterMask and issues a given number of events
- Param FilterList:
Default =
['MuonFilter_11']
, Select only events from that Filters- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param NEvents:
Default =
inf
, That many events are to be delivered
- KeySelector¶
KeySelector
(Python I3Module)Select only framePackets that have these keys present in the Q-frame
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param Keys:
Default =
[]
, A list of keys that have to be present in the frame
- OnlyNPrimaries¶
OnlyNPrimaries
(Python I3Module)A function to select only events with a given number of primaries by checking in the I3MCTree
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param NPrimaries:
Default =
1
, Select only MC frames with that many primaries present
- ReducedCountMaker¶
ReducedCountMaker
(Python I3Module)A helper to make the ReducedCount available as an I3Int in the Q-frames. Does put a key <I3Int>(SplitName+”ReducedCount”)==0 into the frame.
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param SplitName:
Default =
'toposplit'
, Name of the Splitter and its SubEventStream
- SplitCountMaker¶
SplitCountMaker
(Python I3Module)A helper to make the SplitCount available as an I3Int in the Q-frames Puts a key <I3Int>(SplitName+”ReducedCount”)==0 into the frame
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param SplitName:
Default =
'toposplit'
, Name of the Splitter and its SubEventStream
- Stepper¶
Stepper
(Python I3Module)Convenience function for debugging: automatically prints out for every DAQ-frame a increasing count, its run_id and event_id
- UpDownCounter¶
UpDownCounter
(Python I3Module)Counts if tracks are up or down-going; runs on P-frames of a given SplitName
- Param FitName:
Default =
'LineFit_Masked'
, Name of the Fit to use- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param NCh_Cut:
Default =
10
, Only take events with at least that nch- Param SplitName:
Default =
'toposplit'
, Name of the split
- createTimeWindow¶
createTimeWindow
(Python I3Module)Determine the time window defined by first and last pulse in ‘InputPulses’ and extend it by ‘offest’ ns at the beginning and end
- Param IcePickServiceKey:
Default =
''
, Key for an IcePick in the context that this module should check before processing physics frames.- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param InputPulses:
Default =
''
, Name of InputPulses- Param Offset:
Default =
0.0
, Extend the TimeRange by this much at the start and end time- Param Output:
Default =
''
, Output; left unconfigured output is ‘[InputPulses]+TimeRange’
- discardEmptySplits¶
discardEmptySplits
(Python I3Module)Discard Splits there the frame is effectively discardEmptySplits
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param PulsesName:
Default =
''
, Name of the Pulses to operate on- Param SplitName:
Default =
''
, Name of the SubEventStream to process on
- moveObjects¶
moveObjects
(Python I3Module)Move the specified objects between the frames of the Originial and the Target stream; if the flag is specified only flaged frames from the original stream are considered
- Param FlagName:
Default =
'ThisOne'
, Name of the Flag that should be placed- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param MoveObjects:
Default =
['LineFit_Masked']
, These Objects shall be moved to the new stream- Param OriginalStream:
Default =
''
, Name of the Original SubEventStream- Param TargetStream:
Default =
''
, Name of the Target SubEventStream
I3Tray segments¶
- Complete¶
Complete
(I3Tray segment)A segment doing everything that CoincSuite possibly provide. Run after your splitter, which has written the SplitFrames and SplitCount
- Param suffix:
Default =
''
, right now an unused option FIXME appendable suffix- Param SplitName:
Default =
''
, name of the subevent-stream, identical to SplitterModule- Param SplitPulses:
Default =
''
, name of the split PulseSeries in the subevent-stream- Param FitName:
Default =
'LineFit'
, Name of that will be given to the LineFit- Param WarnOnEmptyFrames:
Default =
True
, Should DecisionMaker issue FIXME warnings when there are no frames?