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?