gibuu is hosted by Hepforge, IPPP Durham
GiBUU

TABLE OF CONTENTS


/EventOutput [ Modules ]

[ Top ] [ Modules ]

NAME

module EventOutput

PURPOSE

This module provides classes for writing event output to disk in different formats.

Currently the following two formats are supported:

  • "Les Houches" event files
  • "OSCAR 2013" event files, compatible with SMASH output

For a description of the Les Houches format, please refer to:

For a description of the OSCAR 2013 format, see:

INPUTS

(none)


EventOutput/EventOutputFile [ Types ]

[ Top ] [ EventOutput ] [ Types ]

NAME

type EventOutputFile

PURPOSE

This is an abstract base type to represent a file for event output. It is used as a common interface for LHOutputFile and OscarOutputFile.

SOURCE

  type, abstract :: EventOutputFile
    integer, private :: iFile = 0  ! private file handle
  contains
    ! deferred type-bound procedures that need to be implemented in the derived classes
    procedure(open_ifc),       deferred :: open
    procedure(close_ifc),      deferred :: close
    procedure(write_EH_ifc),   deferred :: write_event_header
    procedure(write_EF_ifc),   deferred :: write_event_footer
    procedure(write_part_ifc), deferred :: write_particle
    procedure :: write_additionalInfo
    ! type-bound procedures that are implemented in the base class
    procedure :: write_real
    procedure :: write_pert
  end type

EventOutput/LHOutputFile [ Types ]

[ Top ] [ EventOutput ] [ Types ]

NAME

type LHOutputFile

PURPOSE

This is an extended type for event output in LesHouches format. It is derived from the base type EventOutputFile and implements its interfaces.

For a description of the Les Houches format, please refer to:

SOURCE

  type, extends(EventOutputFile), public :: LHOutputFile
  contains
    procedure :: open                 => LH_open
    procedure :: close                => LH_close
    procedure :: write_event_header   => LH_write_event_header
    procedure :: write_event_footer   => LH_write_event_footer
    procedure :: write_particle       => LH_write_particle
    procedure :: write_additionalInfo => LH_write_additionalInfo
  end type

EventOutput/OscarOutputFile [ Types ]

[ Top ] [ EventOutput ] [ Types ]

NAME

type OscarOutputFile

PURPOSE

This is an extended type for event output in OSCAR 2013 format. It is derived from the base type EventOutputFile and implements its interfaces.

For a description of the OSCAR 2013 format, see:

SOURCE

  type, extends(EventOutputFile), public :: OscarOutputFile
  contains
    procedure :: open                 => Oscar_open
    procedure :: close                => Oscar_close
    procedure :: write_event_header   => Oscar_write_event_header
    procedure :: write_event_footer   => Oscar_write_event_footer
    procedure :: write_particle       => Oscar_write_particle
  end type

EventOutput/ShanghaiOutputFile [ Types ]

[ Top ] [ EventOutput ] [ Types ]

NAME

type ShanghaiOutputFile

PURPOSE

This is an extended type for event output in Shanghai2014 format.

SOURCE

  type, extends(EventOutputFile), public :: ShanghaiOutputFile
  contains
    procedure :: open                 => Shanghai_open
    procedure :: close                => Shanghai_close
    procedure :: write_event_header   => Shanghai_write_event_header
    procedure :: write_event_footer   => Shanghai_write_event_footer
    procedure :: write_particle       => Shanghai_write_particle
  end type

EventOutput/write_additionalInfo [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine write_additionalInfo(this, iFE, pNode)

PURPOSE

Write additional info about the event, depending on eventtype.


EventOutput/LH_open [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_open(this, pert, nCall)

PURPOSE

Open a file for event-information output according to the "Les Houches Event Files" standard.


EventOutput/LH_close [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_close(this)

PURPOSE

Close a file after outputting Les-Houches event information.


EventOutput/LH_write_event_header [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_write_event_header(this, nParts, nEvent, wgt)

PURPOSE

Write the header for a Les-Houches event, including the number of particles and the event weight.


EventOutput/LH_write_event_footer [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_write_event_footer(this)

PURPOSE

Write the footer that closes a Les-Houches event.


EventOutput/LH_write_particle [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_write_particle (iFile, part)

PURPOSE

Write a single particle in Les-Houches format.


EventOutput/LH_write_additionalInfo [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine LH_write_additionalInfo(this, iFE)

PURPOSE

Write additional info about the event, depending on eventtype.

This routine tries to find additional information about the event. It tries routines for different event types, which only return some information, if it was really stored.

The following cases are handled:

  • For eventtype "HiLep", the following line is added: # 14 nu Q2 eps phiLepton Eventtype (14 is the magic number of "HiLepton")
  • For eventtype "neutrino", the following line is added: # 5 Eventtype Weight momLepIn(0:3) momLepOut(0:3) momNuc(0:3) (5 is the magic number for neutrino events)
  • For eventtype "heavyIon", the following line is added: # 1 b (1 is the magic number of "heavyIon", b is the impact parameter in fm)
  • For eventtype "hadron", the following line is added: # 300 b (300 is the magic number of "hadron", b is the impact parameter in fm)


EventOutput/Oscar_open [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Oscar_open(this, pert, nCall)

PURPOSE

Open a file for event-information output according to the "OSCAR 2013" standard.


EventOutput/Oscar_close [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Oscar_close(this)

PURPOSE

Close a file after outputting OSCAR 2013 event information.


EventOutput/Oscar_write_event_header [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Oscar_write_event_header(this, nParts, nEvent, wgt)

PURPOSE

Write the header for an OSCAR 2013 event, including the number of particles and the event weight.


EventOutput/Oscar_write_event_footer [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Oscar_write_event_footer(this)

PURPOSE

Write the footer that closes an OSCAR 2013 event.


EventOutput/Oscar_write_particle [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Oscar_write_particle (iFile, part)

PURPOSE

Write a single particle in OSCAR 2013 format.


EventOutput/Shanghai_open [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Shanghai_open(this, pert, nCall)

PURPOSE

Open a file for event-information output in Shanghai2014 format.


EventOutput/Shanghai_close [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Shanghai_close(this)

PURPOSE

Close a file after outputting event information in Shanghai2014 format.


EventOutput/Shanghai_write_event_header [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Shanghai_write_event_header(this, nParts, nEvent, wgt)

PURPOSE

Write the header for an event in Shanghai2014 format, including the number of particles and the event weight.


EventOutput/Shanghai_write_event_footer [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Shanghai_write_event_footer(this)

PURPOSE

Write the footer that closes a event in Shanghai2014 format.


EventOutput/Shanghai_write_particle [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine Shanghai_write_particle (iFile, part)

PURPOSE

Write a single particle in Shanghai2014 format.


EventOutput/write_real [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine write_real(this, parts)

PURPOSE

Do the actual printout for real particles.

NOTES

For the case of real particles, one event simply corresponds to one ensemble.


EventOutput/ValueListAllocate [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine ValueListAllocate(n1)

PURPOSE

Do the allocation stuff for the Particle Info List.


EventOutput/write_pert [ Subroutines ]

[ Top ] [ EventOutput ] [ Subroutines ]

NAME

subroutine write_pert(this, parts)

PURPOSE

Do the actual printout for perturbative particles.

NOTES

We have to sort the particles according their "firstevent" field. Therefore we allocate an array of "tParticleList". Unfortunately we can not use the "firstevent" entry directly as array index, since this is not starting with 1 and continously increasing for all kind of eventtypes. Therefore we (ab)use the module "PILIndex", which implements methods of "indexing". (We do not use the possibility of reallocating as provided by the module "PILIndex".)