DetectorSim¶
Corresponding IceProd module: Detectors
Detector simulation in IceCube¶
The DetectorSim tray segment takes as input a GCD and an MCPESeriesMap
that may or may not cointain coincident MCPEs produced by Polyplopia.
If configured to do so, it will add noise MCPEs using Vuvuzela.
It then calls the DetectorResponse
segment from DOMLauncher Project which is responsible
for generating PMTResponse
(I3MCPulseSeriesMap
) and DOMLaunchSeriesMap
objects. It also simulates the
triggers using the configuration from the GCD.
Vuvuzela takes input MCPEs and adds noise PEs resulting from thermal and correlated noise.
PMTResponseSimulator takes input MCPEs and:
Adds a weight corresponding to the pulse charge that photon would yield.
Generates pre-pulses, after-pulses, and late-pulses
Applies time jitter
Simulates saturation
DOMLauncher Project is responsible for simulating:
Discriminator
LC-logic
Digitization
Simulated effects
Electronic noise in the digitizers
Beacon launches (CPU triggered launches)
The FPGA Clock phase
RAPcal time uncertainty
trigger-sim is responsible for simulating all of the DAQ triggers.
API¶
- icecube.simprod.segments.DetectorSim(tray, name, RandomService=None, RunID=None, GCDFile=None, KeepMCHits=False, KeepPropagatedMCTree=False, KeepMCPulses=False, SkipNoiseGenerator=False, LowMem=False, InputPESeriesMapName='I3MCPESeriesMap', BeaconLaunches=True, TimeShiftSkipKeys=[], FilterTrigger=True, EHEApproximation=False, mdomNoisePath='/cvmfs/icecube.opensciencegrid.org/users/gen2-optical-sim/geant_noise/npy/211217_mDOM_Noise_newPMTs_wQE/*.npy', lom16NoisePath='/cvmfs/icecube.opensciencegrid.org/users/gen2-optical-sim/geant_noise/npy/220725_LOM16_vitrovex_goodPMTs/*.npy', lom18NoisePath='/cvmfs/icecube.opensciencegrid.org/users/gen2-optical-sim/geant_noise/npy/220804_LOM18_vitrovex_goodPMTs/*.npy')
Read photon-propagated (MCPE) files, simulate noise, PTM response, DOMLaunches, and trigger.
- Parameters:
RandomService – the name of a random service to be used by the tank response
RunID – Number of run that will be writtend to I3EventHeader
GCDFile – path to GCD file to read first
KeepMCHits – keep MCPEs in frame
KeepPropagatedMCTree – keep MCTree with all in-ice propagated secondaries. These take a lot of space compared un propagated tree.
KeepMCPulses – keep I3MCPulseSeriesMap in frame.
SkipNoiseGenerator – do not run Vuvuzela.
LowMem – reduce peak memory use by repeatedly merging hits as they are generated. WARNING: Use of this option may slightly reduce precision and drastically increase running time. It is potentially useful for very bright events, and probably harmful for very long events.
InputPESeriesMapName – name of input I3MCPESeriesMap object.
BeaconLaunches – add beacon lauches.
TimeShiftSkipKeys – list of keys that should be time-shifted. Default: shift all Time-like objects.
FilterTrigger – remove events that don’t pass any trigger.
EHEApproximation – Reduces runtime in PMTRS for EHE events.
mdomNoisePath – The path to npy files to use for mdom noise simulation (used for Upgrade)
lom16NoisePath – The path to npy files to use for LOM-16 noise simulation (Used for Upgrade, Gen2)
lom18NoisePath – The path to npy files to use for LOM-18 noise simulation (Used for Upgrade, Gen2)