TABLE OF CONTENTS
- 1. EventOutput/write_pert
- 2. EventOutput/ValueListAllocate
- 3. EventOutput/write_real
- 4. EventOutput/Shanghai_write_particle
- 5. EventOutput/Shanghai_write_event_footer
- 6. EventOutput/Shanghai_write_event_header
- 7. EventOutput/Shanghai_close
- 8. EventOutput/Shanghai_open
- 9. EventOutput/Oscar_write_particle
- 10. EventOutput/Oscar_write_event_footer
- 11. EventOutput/Oscar_write_event_header
- 12. EventOutput/Oscar_close
- 13. EventOutput/Oscar_open
- 14. EventOutput/LH_write_additionalInfo
- 15. EventOutput/LH_write_particle
- 16. EventOutput/LH_write_event_footer
- 17. EventOutput/LH_write_event_header
- 18. EventOutput/LH_close
- 19. EventOutput/LH_open
- 20. EventOutput/write_additionalInfo
- 21. EventOutput/ShanghaiOutputFile
- 22. EventOutput/OscarOutputFile
- 23. EventOutput/LHOutputFile
- 24. EventOutput/EventOutputFile
- 25. /EventOutput
/EventOutput [ 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".)