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)