icecube.vuvuzela.pregenerated_noise module

class icecube.vuvuzela.pregenerated_noise.PregeneratedSampler(context)

Bases: I3ConditionalModule

A sampler used to include pre-defined noise behavior in simulation files.

We believe a large fraction of IceCube noise is generated within the glass of the DOMs, giving noise hits that are correlated in time within a single module. While this is parametrizable for single-PMT DOMs, the extension to multi-PMT DOMs isn’t trivial. In order to account for the correlations between PMTs, this module produces MCPEs for the multi-PMT DOMs using predefined input files of the form

> time_since_previous pmt_number

with the time_since_previous relative to the previous hit anywhere on the module. Because of the structure of the test file I’m using, the time here is given in seconds!

By using this form, we can generate noise for simulation using an arbitrarily complex GEANT4 simulation or using actual detector data (assuming the data is solely noise and has negligible contributions from atmospheric muons and neutrinos). This has the added benefit that we don’t have to perform computationally costly noise fits to the hitspool data and, if we take calibration noise data regularly, we can include effects from the detector cooling down over time.

Because this is all pre-generated, we make the assumption that NO OTHER INFORMATION IS NEEDED. This means that we don’t take into account any calibration constants at all at this stage. It should be fine, since there aren’t many calibration constants used in the normal noise simulation either.

Configure((I3ConditionalModule)arg1) None :
C++ signature :

void Configure(PythonModule<I3ConditionalModule> {lvalue})

DAQ((I3ConditionalModule)arg1, (I3Frame)arg2) None :
C++ signature :

void DAQ(PythonModule<I3ConditionalModule> {lvalue},boost::shared_ptr<I3Frame>)

Geometry((I3ConditionalModule)arg1, (I3Frame)arg2) None :
C++ signature :

void Geometry(PythonModule<I3ConditionalModule> {lvalue},boost::shared_ptr<I3Frame>)

end_time = 15000.0
initialize()
input_data = None
input_path = '/cvmfs/icecube.opensciencegrid.org/users/mlarson/mdom_noise/mDOM_darkrate_-25C.*.npy'
max_warn_physics = 20
module_type = icecube._dataclasses.ModuleType.mDOM
modules_to_run = None
n_produced = 0
n_warn_physics = 0
output_map_name = None
physics_map_name = None
random = None
start_time = -15000.0