.. _I3GenieReaderSegment: I3GenieReaderSegment ==================== Reads GENIE Generator variables and then, if ``OutputSystWeights == True`` adds systematic weights specified in ``SystWghtFileNameList``. This segment combines :ref:`I3GenieTracReader` (geometry resampling and GENIE event info conversion to ``.i3``) and :ref:`I3GenieSystWeightTracReader` (GENIE systematic weights conversion to ``.i3``) I3Modules. .. caution:: Requires both GST and GRooTracker root-files to read generator variables. For systematic weights requires ReWeight output root-files. Example usage ^^^^^^^^^^^^^ For the full example see :file:`resources/scripts/step1_genie.py` .. code-block:: python from icecube.icetray import I3Tray, I3Units from icecube import phys_services, genie_reader info = I3GenieInfo() # fill input information in I3GenieInfo # ... tray = I3Tray() # Random number generator randomService = phys_services.I3SPRNGRandomService( seed = 1, nstreams = 10, streamnum = 1) tray.AddModule("I3InfiniteSource","streams", Stream=icetray.I3Frame.DAQ) tray.AddSegment(genie_reader.I3GenieReaderSegment, 'genie_reader', GenieFileGST = 'gntp.NuMu.A.1400002.gst.root', GenieFileGRooTracker = 'gntp.NuMu.A.1400002.gtrac.root', SystWghtFileNameList = ['systw.NuMu.A.1400002.MaCCRES.root', 'systw.NuMu.A.1400002.MaCCQE.root'], GenieInfo = info, RandomService=randomService, IceDensity = 0.93*I3Units.g/I3Units.cm3, GenVolCenter = I3Position(46.29,-34.88,-330.0), OutputResultDict = True) Signature ^^^^^^^^^ .. autoclass:: icecube.genie_reader.I3GenieReaderSegment Output objects ^^^^^^^^^^^^^^ I3GenieReaderSegment produces 5 types of output objects: - ``I3GenieInfo`` in S-Frame (for the description see :ref:`I3GenieTracReader`) - ``I3MCTree``, ``I3MCWeightDict`` and ``I3GenieResult`` in Q-Frame (for the description see :ref:`I3GenieTracReader`) - ``I3GenieSystWeightDict`` in Q-Frame if ``OutputSystWeights == True`` and non-empty list of GENIE Reweight files is passes (for the description see :ref:`I3GenieSystWeightTracReader`)