Skip to content

Commit

Permalink
Import Pythia 8.304
Browse files Browse the repository at this point in the history
  • Loading branch information
preghenella committed Apr 10, 2021
0 parents commit 949ad14
Show file tree
Hide file tree
Showing 1,206 changed files with 1,022,390 additions and 0 deletions.
21 changes: 21 additions & 0 deletions AUTHORS
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
AUTHORS:
Christian Bierlich <christian.bierlich@thep.lu.se>
Nishita Desai <desai@theory.tifr.res.in>
Leif Gellersen <leif.gellersen@thep.lu.se>
Ilkka Helenius <ilkka.m.helenius@jyu.fi>
Philip Ilten <philten@cern.ch>
Leif Lonnblad <leif.lonnblad@thep.lu.se>
Stephen Mrenna <mrenna@fnal.gov>
Stefan Prestel <stefan.prestel@thep.lu.se>
Christian Preuss <christian.preuss@monash.edu>
Torbjorn Sjostrand <torbjorn@thep.lu.se>
Peter Skands <peter.skands@monash.edu>
Marius Utheim <marius.utheim@thep.lu.se>
Rob Verheyen <r.verheyen@ucl.ac.uk>

FORMER AUTHORS:
Stefan Ask
Jesper Roy Christiansen
Richard Corke
Nadine Fischer
Christine O. Rasmussen
357 changes: 357 additions & 0 deletions CODINGSTYLE

Large diffs are not rendered by default.

340 changes: 340 additions & 0 deletions COPYING

Large diffs are not rendered by default.

108 changes: 108 additions & 0 deletions GUIDELINES
Original file line number Diff line number Diff line change
@@ -0,0 +1,108 @@

MCNET GUIDELINES

for Event Generator Authors and Users


PREAMBLE

This generator has been developed as part of an academic research
project and is the result of many years of work by the authors.
Proper academic recognition is a requirement for its continued
development.

The components of the program have been developed to work together
as a coherent physics framework. We believe that the creation of
separately maintained forks or piecewise distribution of individual
parts would diminish their scientific value.

The authors are convinced that software development in a scientific
context requires full availability of all source code, to further
progress and to allow local modifications to meet the specific
requirements of the individual user.

Therefore we have decided to release this program under the GNU
General Public License (GPL) version 2 (with the option to instead
follow the terms and conditions of any later version of GPL). This
ensures that the source code will be available to you and grants you
the freedom to use and modify the program. You can redistribute your
modified versions as long as you retain the GPL and respect existing
copyright notices (see the file 'COPYING' for details).

By using the GPL, we entrust you with considerable freedom and expect
you to use it wisely, since the GPL does not address the issues in
the first two paragraphs. To remedy this shortcoming, we have
formulated the following guidelines relevant for the distribution
and usage of event generator software in an academic setting.


GUIDELINES

1) The integrity of the program should be respected.
-------------------------------------------------

1.1) Suspected bugs and proposed fixes should be reported back to the
original authors to be considered for inclusion in the standard
distribution. No independently developed and maintained forks
should be created as long as the original authors actively work on
the program.

1.2) The program should normally be redistributed in its entirety.
When there are special reasons, an agreement should be sought with
the original authors to redistribute only specific parts. This
should be arranged such that the redistributed parts remain
updated in step with the standard distribution.

1.3) Any changes in the code must be clearly marked in the source
(reason, author, date) and documented. If any modified version is
redistributed it should be stated at the point of distribution
(download link) that it has been modified and why.

1.4) If a significant part of the code is used by another program,
this should be clearly specified in that program's documentation and
stated at its point of distribution.

1.5) Copyright information and references may not be removed.
Copyright-related program messages may not be altered and must be
printed even if only a part of the program is used. Adding further
messages specifying any modifications is encouraged.


2) The program and its physics should be properly cited when used for
academic publications
------------------------------------------------------------------

2.1) The main software reference as designated by the program authors
should always be cited.

2.2) In addition, the original literature on which the program is based
should be cited to the extent that it is of relevance for a study,
applying the same threshold criteria as for other literature.

2.3) When several programs are combined, they should all be mentioned,
commensurate with their importance for the physics study at hand.

2.4) To make published results reproducible, the exact versions of the
codes that were used and any relevant program and parameter
modifications should be spelled out.


POSTSCRIPT

The copyright license of the software is the GPL v2 alone, therefore
the above guidelines are not legally binding. However, we reserve the
right to criticize offenders. The guidelines should always be combined
with common sense, for interpretation and for issues not covered.
Enquiries regarding the guidelines and related issues are encouraged
and should be directed to the authors of the program.

Please note that the program, including all its code and documentation,
is intended for academic use and is delivered "as is" to be used at
your own risk, without any guarantees.

----------------------------------------------------------------------

These guidelines were edited by Nils Lavesson and David Grellscheid
for the MCnet collaboration, which has approved and agreed to respect
them. MCnet is a Marie Curie Research Training Network funded under
Framework Programme 6 contract MRTN-CT-2006-035606.
161 changes: 161 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,161 @@
# Makefile is a part of the PYTHIA event generator.
# Copyright (C) 2021 Torbjorn Sjostrand.
# PYTHIA is licenced under the GNU GPL v2 or later, see COPYING for details.
# Please respect the MCnet Guidelines, see GUIDELINES for details.
# Author: Philip Ilten, October 2014 - November 2017.
#
# This is is the Makefile used to build PYTHIA on POSIX systems.
# Example usage is:
# make -j2
# For help using the make command please consult the local system documentation,
# i.e. "man make" or "make --help".

################################################################################
# VARIABLES: Definition of the relevant variables from the configuration script
# and the distribution structure.
################################################################################

# Set the shell.
SHELL=/usr/bin/env bash

# Include the configuration and set the local directory structure.
ifeq (,$(findstring clean, $(MAKECMDGOALS)))
ifneq (Makefile.inc,$(MAKECMDGOALS))
LOCAL_CFG:=$(shell $(MAKE) Makefile.inc))
include Makefile.inc
endif
endif
LOCAL_BIN=bin/
LOCAL_DOCS=AUTHORS COPYING GUIDELINES README ../../examples/Makefile.inc
LOCAL_EXAMPLE=examples
LOCAL_INCLUDE=include
LOCAL_LIB=lib
LOCAL_SHARE=share/Pythia8
LOCAL_SRC=src
LOCAL_TMP=tmp
LOCAL_MKDIRS:=$(shell mkdir -p $(LOCAL_TMP) $(LOCAL_LIB))
CXX_COMMON:=-I$(LOCAL_INCLUDE) $(CXX_COMMON)
OBJ_COMMON:=-MD $(CXX_COMMON) $(OBJ_COMMON)
LIB_COMMON=-Wl,-rpath,../lib:$(PREFIX_LIB) -ldl $(GZIP_LIB)

# PYTHIA.
OBJECTS=$(patsubst $(LOCAL_SRC)/%.cc,$(LOCAL_TMP)/%.o,\
$(sort $(wildcard $(LOCAL_SRC)/*.cc)))
TARGETS=$(LOCAL_LIB)/libpythia8.a $(LOCAL_LIB)/libpythia8$(LIB_SUFFIX)

# LHAPDF.
ifeq ($(LHAPDF5_USE),true)
TARGETS+=$(LOCAL_LIB)/libpythia8lhapdf5.so
endif
ifeq ($(LHAPDF6_USE),true)
TARGETS+=$(LOCAL_LIB)/libpythia8lhapdf6.so
endif

# POWHEG (needs directory that contains just POWHEG binaries and scripts).
ifeq ($(POWHEG_USE),true)
ifneq ($(POWHEG_BIN),./)
TARGETS+=$(patsubst $(POWHEG_BIN)%,$(LOCAL_LIB)/libpythia8powheg%.so,\
$(wildcard $(POWHEG_BIN)*))
endif
endif

# MG5 matrix element plugins.
ifeq ($(MG5MES_USE),true)
TARGETS+=mg5mes
endif

# Python.
ifeq ($(PYTHON_USE),true)
TARGETS+=python
endif

################################################################################
# RULES: Definition of the rules used to build PYTHIA.
################################################################################

# Rules without physical targets (secondary expansion for documentation).
.SECONDEXPANSION:
.PHONY: all install clean distclean mg5mes python

# All targets.
all: $(TARGETS) $(addprefix $(LOCAL_SHARE)/, $(LOCAL_DOCS))

# The documentation.
$(addprefix $(LOCAL_SHARE)/, $(LOCAL_DOCS)): $$(notdir $$@)
cp $^ $@

# The Makefile configuration.
Makefile.inc:
./configure

# Auto-generated (with -MD flag) dependencies.
-include $(LOCAL_TMP)/*.d $(LOCAL_TMP)/mg5mes/*.d

# PYTHIA.
$(LOCAL_TMP)/Pythia.o: $(LOCAL_SRC)/Pythia.cc Makefile.inc
$(CXX) $< -o $@ -c $(OBJ_COMMON) -DXMLDIR=\"$(PREFIX_SHARE)/xmldoc\"
$(LOCAL_TMP)/Streams.o: $(LOCAL_SRC)/Streams.cc Makefile.inc
$(CXX) $< -o $@ -c $(OBJ_COMMON)
$(LOCAL_TMP)/%.o: $(LOCAL_SRC)/%.cc
$(CXX) $< -o $@ -c $(OBJ_COMMON)
$(LOCAL_LIB)/libpythia8.a: $(OBJECTS)
ar cr $@ $^
$(LOCAL_LIB)/libpythia8$(LIB_SUFFIX): $(OBJECTS)
$(CXX) $^ -o $@ $(CXX_COMMON) $(CXX_SHARED) $(CXX_SONAME)$(notdir $@)\
$(LIB_COMMON)

# LHAPDF (turn off all warnings for readability).
$(LOCAL_TMP)/LHAPDF%Plugin.o: $(LOCAL_INCLUDE)/Pythia8Plugins/LHAPDF%.h
$(CXX) -x c++ $< -o $@ -c -MD -w $(CXX_COMMON) $(LHAPDF$*_INCLUDE)
$(LOCAL_LIB)/libpythia8lhapdf%.so: $(LOCAL_TMP)/LHAPDF%Plugin.o\
$(LOCAL_LIB)/libpythia8$(LIB_SUFFIX)
$(CXX) $< -o $@ $(CXX_COMMON) $(CXX_SHARED) $(CXX_SONAME)$(notdir $@)\
$(LHAPDF$*_LIB) -lLHAPDF -Llib -lpythia8

# POWHEG (exclude any executable ending with sh).
$(LOCAL_TMP)/LHAPowheg.o: $(LOCAL_INCLUDE)/Pythia8Plugins/LHAPowheg.h
$(CXX) -x c++ $< -o $@ -c -MD -w $(CXX_COMMON)
$(LOCAL_LIB)/libpythia8powheg%sh.so: $(POWHEG_BIN)%sh;
$(LOCAL_LIB)/libpythia8powheg%.so: $(POWHEG_BIN)% $(LOCAL_TMP)/LHAPowheg.o\
$(LOCAL_LIB)/libpythia8$(LIB_SUFFIX)
ln -s $< $(notdir $<); $(CXX) $(notdir $<) $(LOCAL_TMP)/LHAPowheg.o\
-o $@ $(CXX_COMMON) $(CXX_SHARED) -Llib -lpythia8\
$(CXX_SONAME)$(notdir $@) -Wl,-rpath,$(POWHEG_BIN); rm $(notdir $<)

# MG5 matrix element plugins.
mg5mes:
cd $(MG5MES_BIN) && $(MAKE)

# Python.
python: $(LOCAL_LIB)/libpythia8$(LIB_SUFFIX)
cd plugins/python && $(MAKE)

# Install.
install: all
mkdir -p $(PREFIX_BIN) $(PREFIX_INCLUDE) $(PREFIX_LIB) $(PREFIX_SHARE)
rsync -a $(LOCAL_BIN)/* $(PREFIX_BIN)
rsync -a $(LOCAL_INCLUDE)/* $(PREFIX_INCLUDE)
rsync -a $(LOCAL_LIB)/* $(PREFIX_LIB)
rsync -a $(LOCAL_SHARE)/* $(PREFIX_SHARE)
rsync -a $(LOCAL_EXAMPLE) $(PREFIX_SHARE)

# Clean.
clean:
cd plugins/python && $(MAKE) clean
cd plugins/mg5mes && $(MAKE) clean
rm -rf $(LOCAL_TMP) $(LOCAL_LIB)
rm -f $(LOCAL_EXAMPLE)/*Dct.*
rm -f $(LOCAL_EXAMPLE)/*[0-9][0-9]
rm -f $(LOCAL_EXAMPLE)/weakbosons.lhe
rm -f $(LOCAL_EXAMPLE)/hist.root

# Clean all temporary and generated files.
distclean: clean
find . -type f -name Makefile.inc -print0 | xargs -0 rm -f
find . -type f -name "*~" -print0 | xargs -0 rm -f
find . -type f -name "#*" -print0 | xargs -0 rm -f
rm -rf $(LOCAL_BIN)
rm -f $(LOCAL_SHARE)/AUTHORS
rm -f $(LOCAL_SHARE)/COPYING
rm -f $(LOCAL_SHARE)/GUIDELINES
rm -f $(LOCAL_SHARE)/README
Loading

0 comments on commit 949ad14

Please sign in to comment.