Project icetop_Level3_scripts¶
Invoke with: import icecube.icetop_Level3_scripts
Python I3Modules¶
- AddReadoutTimeWindow¶
AddReadoutTimeWindow
(Python I3Module)<undocumented>
- 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 Pulses:
Default =
'CleanCoincOfflinePulses'
, Name of pulse series map to write time range for
- AddSLCCalibrationCollection¶
AddSLCCalibrationCollection
(Python I3Module)Take a GCD file and modify it according to a jsonl file with p0/p1 calibration information.
- Param EndRun:
Default =
None
, End run (inclusive) for which these constants are valid (if not possible to guess from the filename)- Param Provenance:
Default =
icecube._dataclasses.ITSLCCalProvenance.Placeholder
, What enum is the Provenance for these numbers (where are they from)?- Param SLCCalibFile:
Default =
<Unprintable>
, SLC calibration .jsonl (contains all information for combining p0 and p1 values for 2-week periods)- Param StartRun:
Default =
None
, Start run for which these constants are valid (if not possible to guess from the filename)
- AddTanks¶
AddTanks
(Python I3Module)<undocumented>
- Param ExcludedTanksName:
Default =
0
, Name of Already ExcludedTanks in the frame- 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 OutputExcludedTanksName:
Default =
0
, Name of New ExcludedTanks in the frame- Param TanksToAddName:
Default =
0
, Name of Tanks to add in the frame
- ChangeSnowHeight¶
ChangeSnowHeight
(Python I3Module)<undocumented>
- 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 SnowTablesFile:
Default =
<Unprintable>
, File that contains snow tables
- ChangeSnowHeight_interpolated¶
ChangeSnowHeight_interpolated
(Python I3Module)<undocumented>
- Param day:
Default =
0
, Day- Param filename:
Default =
'IT81-MasterwithSnowMeasurements.csv'
, In-situ measurements spreadsheet (csv)- Param month:
Default =
0
, Month- Param year:
Default =
0
, Year
- CheckContainment¶
CheckContainment
(Python I3Module)I3Module to check if a list of I3Particles is contained within IceTop and the in-ice array. For IceTop two kinds of containment are defined: OnionContainment (number) and FractionContainment (number). + InFillContainment (bool). Additionally, InIceFractionContainment (number) is put in the frame.
- Param Detector:
Default =
None
, Detector configuration (IC79 or IC86). It uses the GCD to determine it if nothing is specified.- 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 Particles:
Default =
['LaputopStandard', 'LaputopSmallShower']
, List of IDs of I3Particles
- CheckFilter¶
CheckFilter
(Python I3Module)I3Module to check the filter mask.
- Param Detector:
Default =
None
, Detector configuration (IC79 or IC86.20*).- Param Filter:
Default =
False
, Flag to skip events that do not pass any of the conditions- 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 isMC:
Default =
False
, Data or MC?
- CorrectMCPrimaryCoreTime¶
CorrectMCPrimaryCoreTime
(Python I3Module)I3Module to apply a correction to SLC charges.
- Param AtmMod:
Default =
'10'
, Number of the atmospheric model originally used in CORSIKA. Use “10” [the default] to use a manual “atmosphericHeight”- Param atmosphericHeight:
Default =
'11279969.933566'
, Only if “AtmMod” is “10”, the atmospheric height in cm. The default is the typical IceCube values for this mdoel- Param Curved:
Default =
False
, Did CORSIKA have used Curved atmosphere?- 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 MCPrimary:
Default =
'MCPrimary'
, Name of the MCPrimary object to correct- Param MCPrimaryOut:
Default =
'MCPrimary'
, Name of the MCPrimary object to write in the frame
- CutSnowHeight¶
CutSnowHeight
(Python I3Module)Module to cut the snow height in case we suffered from the observation level bug
- Param ObservationHeight:
Default =
2834.0
, Observation height setting in CORSIKA
- DOMselection_InIce¶
DOMselection_InIce
(Python I3Module)<undocumented>
- Param IcePickServiceKey:
Default =
''
, Key for an IcePick in the context that this module should check before processing physics frames.- Param ICpulses:
Default =
0
, IceCube RecoPulses name- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t- Param OutputName:
Default =
0
, Name of output TimeWindowMap- Param Ratio:
Default =
0.8
, DOMs with a larger fraction of total event charge are cut
- Early_cleaning_InIce¶
Early_cleaning_InIce
(Python I3Module)Test on double coinc data (select 1 day, first_time II - first_time IT < 4us) RESULT: WORKS perfectly, but not that fast… !! defines function which selects hits in cylinder around the track and hits can’t be earlier than track
- 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 inputpulseName:
Default =
None
, Input inice pulses- Param max_radius:
Default =
None
, Maximum radius- Param min_time:
Default =
None
, Minimum time- Param outputpulseName:
Default =
None
, Output inice pulses- Param trackName:
Default =
None
, Name of the reco icetop track
- FilterWaveforms¶
FilterWaveforms
(Python I3Module)<undocumented>
- 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 Pulses:
Default =
'OfflineIceTopHLCTankPulses'
, Pulses
- FixGCDTankABOrdering¶
FixGCDTankABOrdering
(Python I3Module)In some GCD files, the two tanks in a station are listed in reverse order (with the first tank containing DOM’s 63 and 64, the second containing 61 and 62). The coordinates of the tank are consistent with the DOM’s listed within them, so all we need to do is swap the ordering of the two I3TankGeo’s in the list.
- I3IceTopSLCTimeCorrect¶
I3IceTopSLCTimeCorrect
(Python I3Module)I3Module to apply a correction to SLC charges.
- 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 SLCPulses:
Default =
'IceTopSLCTankPulses'
, ID of input charge calibrated SLC pulse list (this gets replaced by default)- Param SLCPulsesOut:
Default =
''
, ID of output calibrated SLC pulse list. If it is not specified, it is set equal to SLCPulses. If an object with this name is present, it will be replaced.- Param SLCTimeCorrectionPickle:
Default =
'/Users/buildbot/actions-runner/_work/icetray/build/icetop_Level3_scripts/resources/data/SLCTimeCorrection.pickle'
, Pickle that contains Time Correction Parametrization
- I3VEMConverter¶
I3VEMConverter
(Python I3Module)I3Module to calibrate waveforms. This module replicates the calibration applied in tpx/I3TopHLCPulseExtractor, which does not add the VEM-calibrated waveform to the frame.
- 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 VEMWaveforms:
Default =
'IceTopVEMCalibratedWaveforms'
, VEM-calibrated waveforms- Param Waveforms:
Default =
'IceTopCalibratedWaveforms'
, Waveforms before VEM calibration
- InIceQualityCuts¶
InIceQualityCuts
(Python I3Module)<undocumented>
- 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 maxRlogl:
Default =
0
, Remove events with log10(rlogl) of Millipede fit larger than this value- Param millipedeName:
Default =
0
, Name of the reconstructed Millipede cascades- Param millipedeParamsName:
Default =
0
, Name of the Millipede FitParams- Param minNonZeroCasc:
Default =
0
, Remove events with less than n reconstructed nonzero energy cascades- Param minQTotRatio:
Default =
0
, Remove events with log10(Predicted total charge/measured total charge) larger than this value- Param stochasticsName:
Default =
0
, Name of the stochastics fit
- MakeQualityCuts¶
MakeQualityCuts
(Python I3Module)Module which actually does the cuts: Look whether they survived the quality cuts. If not: remove OR put bools in a common frameObject which you can evaluate later.
- Param CollectBools:
Default =
'IT73AnalysisIceTopQualityCuts'
, Name of output I3MapStringBool- Param CutOrder:
Default =
[]
, Contains all cuts in the order that you want.- Param CutsNames:
Default =
{}
, Names of Cuts that we put in the bool, they should all be true for good quality.- Param CutsToEvaluate:
Default =
{}
, Which keys do we need to check? And how?- Param RemoveEvents:
Default =
False
, Remove the events or keep?
- MassageMillipedeOutput¶
MassageMillipedeOutput
(Python I3Module)Massage the output: remove the fake peaks. TODO : use the covariance matrix/Fisher information matrix to decide better
- Param fill_dust:
Default =
False
, Fill eloss track reco with average in dust layer- 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 inputname:
Default =
'Millipede'
, key with Energy reconstruction along track- Param max_dust:
Default =
-30
, Upper boundary of dust layer- Param min_dust:
Default =
-140
, Lower boundary of dust layer- Param min_energy:
Default =
-1.0
, Minimum energy to take bin into account- Param outputname:
Default =
'Millipede_dEdX'
, Output I3ParticleVector to feed to I3Stochastics- Param ShowerSpacing:
Default =
20
, Spacing along the track
- MaxSignalCuts¶
MaxSignalCuts
(Python I3Module)I3Module to do simple standard cuts based on the maximum signal. The main check is that the largest signal is not on the edge of the array.
- Param Detector:
Default =
None
, Detector configuration (IC79 or IC86). It uses the GCD to determine it if nothing is specified.- 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 MinMaxSignal:
Default =
6
, Minimum value for the largest signal (in VEM).- Param MinSignalNeighbourTankMax:
Default =
4
, Minimum value for the signal in the neighbouring tank of the largest signal (in VEM).- Param Pulses:
Default =
['CleanedHLCTankPulses']
, Pulse lists to look for the largest signal
- MoveMCPrimary¶
MoveMCPrimary
(Python I3Module)<undocumented>
- Param If:
Default =
None
, A python function… if this returns something that evaluates to True, Module runs, else it doesn’t
- RecalibrateVEMPulses¶
RecalibrateVEMPulses
(Python I3Module)<undocumented>
- 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 InputPulsesP:
Default =
[]
, L2 calibrated pulses in Physics- Param InputPulsesQ:
Default =
[]
, L2 calibrated pulses in DAQ
- ReevaluateTriggerOnIceTopSplit¶
ReevaluateTriggerOnIceTopSplit
(Python I3Module)<undocumented>
- 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 Input:
Default =
'CleanedHLCTankPulses'
, Name of input pulse series- Param Output:
Default =
'IceTop_TwoStationFilter_Bool'
, Name of filter decision bool
- SanityCheckStationGeo¶
SanityCheckStationGeo
(Python I3Module)Cruise through the “StationGeo” object in I3Geometry, and see if the ordering of the tanks is “conventional ordering” or not.
- SnowCorrectPulses¶
SnowCorrectPulses
(Python I3Module)<undocumented>
- 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 Pulses:
Default =
[]
, Array of pulses to snowCorrect- Param SnowService:
Default =
None
, Which Snow service to use for the correction- Param Track:
Default =
'Laputop'
, Reconstructed track to use for the zenith angle
- StationDensity¶
StationDensity
(Python I3Module)<undocumented>
- Param InputCOG:
Default =
0
, Which IceTop COG to use- Param InputITpulses:
Default =
0
, Which IceTop Pulses to use
- StripIFrames¶
StripIFrames
(Python I3Module)<undocumented>
- Param NKeep:
Default =
None
, Number of I-frames at the beginning to keep
- UpdateNames¶
UpdateNames
(Python I3Module)I3ConditionalModule to change names from older naming conventions to newer ones, to make life easier later.
- 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 ListOfChanges:
Default =
[['DSTTriggers', 'I3TriggerHierarchy']]
, List of pairs of [old, new] names- Param StreamNameNew:
Default =
'IceTopSplit'
, What you want to change the stream name to (such as IceTopSplit)- Param StreamNameOld:
Default =
'IceTopSplit'
, Existing stream name (such as ice_top)
- UpdateVEMCal¶
UpdateVEMCal
(Python I3Module)This module locates the VEMCal file for a certain date (which is the big bunch of ugly work down here), And replaces the VEMCal values in the calibration frame. It puts the (wrong) values present in the L2 GCD in separate frame objects, since we need them for the correction.
- Param Day:
Default =
<Unprintable>
, Day for VEMcal determination- Param Month:
Default =
<Unprintable>
, Month for VEMcal determination- Param Runnumber:
Default =
<Unprintable>
, Number of the run to be processed- Param XMLDir:
Default =
<Unprintable>
, Manual listing of the directory containing XML file (not necessary in Madison)- Param Year:
Default =
<Unprintable>
, Year for VEMcal determination
- cleanBadThinning¶
cleanBadThinning
(Python I3Module)<undocumented>
- Param ExcludedPulseName:
Default =
0
, Name of the resulting removed buggy IT pulses- 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 InputITpulseName:
Default =
0
, Which IceTop pulses to clean out- Param OutputPulseName:
Default =
0
, Name of the resulting thinFix cleaned IT pulses
I3Tray segments¶
- CleanIceTop¶
CleanIceTop
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param detect_conf:
Default =
'IT73_IC79'
,- Param it_pulses:
Default =
'CleanedHLCTankPulses'
,- Param it_pulses_clean:
Default =
'IT_RT_180m_450ns'
,- Param excluded_tanks:
Default =
'ClusterCleaningExcludedTanks'
,- Param extra_excluded_tanks:
Default =
'ExtraCleanedExcludedTanks'
,
- EnergylossReco¶
EnergylossReco
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param InIcePulses:
Default =
'CleanCoincPulses'
,- Param dom_eff:
Default =
0.99
,- Param IceTopTrack:
Default =
'Laputop'
,- Param splinedir:
Default =
'/data/sim/sim-new/downloads/spline-tables/'
,- Param If:
Default =
<function <lambda> at 0x158d0c9a0>
,
- ExtractWaveforms¶
ExtractWaveforms
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param InputLaunches:
Default =
'IceTopRawData'
,- Param OutputWaveforms:
Default =
'IceTopVEMCalibratedWaveforms'
,- Param If:
Default =
<function <lambda> at 0x158ce3240>
,
- FixIC79MCDeThinningBug¶
FixIC79MCDeThinningBug
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param IT_pulses:
Default =
'CleanedHLCTankPulses'
,- Param ExcludedTanks:
Default =
'ClusterCleaningExcludedTanks'
,
- IceTopQualityCuts¶
IceTopQualityCuts
(I3Tray segment)Segment to collect all IceTop quality cuts. Last module in this segment:
- Param detector:
Default =
'IC79'
,- Param pulses:
Default =
'CleanedHLCTankPulses'
,- Param isMC:
Default =
False
,- Param reco_track:
Default =
'Laputop'
,- Param removeOrNot:
Default =
False
,
- MakeHistograms¶
MakeHistograms
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param OutputFilename:
Default =
None
,- Param condition:
Default =
'"IT73AnalysisIceTopQualityCuts" in frame and all(frame["IT73AnalysisIceTopQualityCuts"].values()) and log10(frame["LaputopParams"].expected_signal(125.))>0.2'
,- Param isMC:
Default =
False
,
- ReRunFilters¶
ReRunFilters
(I3Tray segment)This segment is run because of the inconsistency between the different years regarding filtermask names, etc. We will rerun the filter on the P frame.
- Param Detector:
Default =
None
,- Param isMC:
Default =
False
,- Param Pulses:
Default =
'CleanedHLCTankPulses'
,
- SelectCleanInIcePulses¶
SelectCleanInIcePulses
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param CoincPulses:
Default =
'CoincPulses'
,- Param CleanCoincPulses:
Default =
'CleanCoincPulses'
,- Param IceTopTrack:
Default =
'Laputop'
,- Param If:
Default =
<function <lambda> at 0x158d0c680>
,
- SimulateBackground¶
SimulateBackground
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param HLCTankPulses:
Default =
None
,- Param SLCTankPulses:
Default =
None
,- Param NoiseRate:
Default =
1500
,- Param AddJitter:
Default =
False
,
- OfflineIceTopReco¶
OfflineIceTopReco
(I3Tray segment)Adds the following IceTop reconstructions to the frame:
- Param If:
Default =
<function <lambda> at 0x158d0c180>
,- Param Pulses:
Default =
''
,- Param Excluded:
Default =
'IceTopBadTanks'
,- Param SnowFactor:
Default =
2.1
,- Param Tag:
Default =
''
,- Param Detector:
Default =
'IC86.2013'
,
- RemoveOldLevel2¶
RemoveOldLevel2
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param Tag:
Default =
''
,
- level3_Coinc¶
level3_Coinc
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param IceTopTrack:
Default =
'Laputop'
,- Param InIcePulses:
Default =
'InIcePulses'
,- Param IceTopPulses:
Default =
'CleanedHLCTankPulses'
,- Param do_select:
Default =
False
,- Param domeff:
Default =
0.99
,- Param spline_dir:
Default =
'/data/sim/sim-new/downloads/spline-tables/'
,
- muonReconstructions¶
muonReconstructions
(I3Tray segment)I3Tray segments should have docstrings. This one doesn’t. Fix it.
- Param Pulses:
Default =
'CoincPulses'
,- Param prefix:
Default =
'CoincMuonReco_'
,- Param If:
Default =
<function <lambda> at 0x158d0cfe0>
,