diff --git a/CMakeLists.txt b/CMakeLists.txt index ef9a793..7d85f46 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,100 +1,108 @@ # Top level CMakeLists.txt for EvtGen # Enforce an out-of-source build. # Should be the first action in the top level CMakeLists.txt if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) message(STATUS "EvtGen requires an out-of-source build.") message(STATUS "Please remove the following files from ${CMAKE_BINARY_DIR}:") message(STATUS " CMakeCache.txt") message(STATUS " CMakeFiles") message(STATUS "Once these files are removed, create a separate directory") message(STATUS "and run CMake from there, pointing it to:") message(STATUS " ${CMAKE_SOURCE_DIR}") message(FATAL_ERROR "in-source build detected") endif() # Also require a minimum version of CMake cmake_minimum_required(VERSION 3.8.0) # Project setup if(${CMAKE_VERSION} VERSION_LESS 3.9.0) project(EvtGen VERSION 2.0.0 ) elseif(${CMAKE_VERSION} VERSION_LESS 3.12.0) project(EvtGen VERSION 2.0.0 DESCRIPTION "Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons." ) else() project(EvtGen VERSION 2.0.0 DESCRIPTION "Monte Carlo generator of particle decays, in particular the weak decays of heavy flavour particles such as B mesons." HOMEPAGE_URL "https://evtgen.hepforge.org" ) endif() # Prepend this project's custom module path(s) to CMAKE_MODULE_PATH set(CMAKE_MODULE_PATH ${PROJECT_SOURCE_DIR}/cmake/Modules ${CMAKE_MODULE_PATH}) # Include needed modules to perform any custom setup # Install paths include(GNUInstallDirs) # Compilation/linking flags and related settings include(CompilerFlags) # EvtGen external dependencies option(EVTGEN_PYTHIA "Enable/disable linking with Pythia8" OFF) option(EVTGEN_PHOTOS "Enable/disable linking with Photos++" OFF) option(EVTGEN_TAUOLA "Enable/disable linking with Tauola++" OFF) message(STATUS "EvtGen: Linking with HepMC2") message(STATUS "EvtGen: Optional linking with Pythia8 ${EVTGEN_PYTHIA}") message(STATUS "EvtGen: Optional linking with Photos++ ${EVTGEN_PHOTOS}") message(STATUS "EvtGen: Optional linking with Tauola++ ${EVTGEN_TAUOLA}") include(ExternalDependencies) # Now build the library add_subdirectory(src) # Copy the particle property and decay tables configure_file(DECAY.DEC ${CMAKE_CURRENT_BINARY_DIR}/DECAY.DEC COPYONLY) configure_file(DECAY.XML ${CMAKE_CURRENT_BINARY_DIR}/DECAY.XML COPYONLY) configure_file(evt.pdl ${CMAKE_CURRENT_BINARY_DIR}/evt.pdl COPYONLY) # Build the executables in the test and validation directories -add_subdirectory(test) -add_subdirectory(validation) +option(EVTGEN_BUILD_TESTS "Enable/disable building of executables in 'test' directory" OFF) +option(EVTGEN_BUILD_VALIDATIONS "Enable/disable building of executables in 'validation' directory" OFF) +message(STATUS "EvtGen: Building of executables in 'test' directory ${EVTGEN_BUILD_TESTS}") +message(STATUS "EvtGen: Building of executables in 'validation' directory ${EVTGEN_BUILD_VALIDATIONS}") +if(${EVTGEN_BUILD_TESTS}) + add_subdirectory(test) +endif() +if(${EVTGEN_BUILD_VALIDATIONS}) + add_subdirectory(validation) +endif() # Install the include directories -install(DIRECTORY EvtGen DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(DIRECTORY EvtGenBase DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(DIRECTORY EvtGen DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(DIRECTORY EvtGenBase DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) install(DIRECTORY EvtGenExternal DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) -install(DIRECTORY EvtGenModels DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +install(DIRECTORY EvtGenModels DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) # Install the particle properties and decay tables install(FILES DECAY.DEC DECAY.XML evt.pdl DESTINATION ${CMAKE_INSTALL_PREFIX}) # Generate CMake config files, which can be used by other projects include(CMakePackageConfigHelpers) set(INCLUDE_INSTALL_DIR ${CMAKE_INSTALL_INCLUDEDIR}) set(LIB_INSTALL_DIR ${CMAKE_INSTALL_LIBDIR}) configure_package_config_file(cmake/Templates/EvtGenConfig.cmake.in ${CMAKE_CURRENT_BINARY_DIR}/EvtGenConfig.cmake INSTALL_DESTINATION cmake PATH_VARS INCLUDE_INSTALL_DIR LIB_INSTALL_DIR ) write_basic_package_version_file(${CMAKE_CURRENT_BINARY_DIR}/EvtGenConfigVersion.cmake COMPATIBILITY AnyNewerVersion ) install(FILES ${CMAKE_CURRENT_BINARY_DIR}/EvtGenConfig.cmake ${CMAKE_CURRENT_BINARY_DIR}/EvtGenConfigVersion.cmake DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake ) install( EXPORT "EvtGenTargets" NAMESPACE "EvtGen::" DESTINATION ${CMAKE_INSTALL_PREFIX}/cmake ) diff --git a/Makefile b/Makefile deleted file mode 100644 index 2822675..0000000 --- a/Makefile +++ /dev/null @@ -1,54 +0,0 @@ -include ./config.mk - -targets=lib_shared -targets+=lib_archive -ifeq ($(EVTGEN_EXTERNAL),1) - targets+=libext_shared - targets+=libext_archive -endif - -default: all - -all: $(targets) - -lib_shared: - $(MAKE) -C $(SRCDIR) lib_shared - -lib_archive: - $(MAKE) -C $(SRCDIR) lib_archive - -libext_shared: - $(MAKE) -C $(SRCDIR) libext_shared - -libext_archive: - $(MAKE) -C $(SRCDIR) libext_archive - -install: - if test "${PREFIX}" != "." ; then \ - mkdir -p ${PREFIX}/lib ${PREFIX}/include ${PREFIX}/share && \ - cp -rf lib/* ${PREFIX}/lib/ && \ - cp -rf EvtGen EvtGenBase EvtGenModels EvtGenExternal ${PREFIX}/include/ && \ - cp -rf *.DEC *.XML evt.pdl ${PREFIX}/share/ ; \ - fi - -distclean: clean - rm -rf tmp/ bin/ lib/ tmp_exp/ - rm -f config.mk fort.* - -clean: - $(MAKE) -C $(SRCDIR) clean - -help: - @echo "A list of targets to make:" - @echo "" - @echo "lib_shared: compiles EvtGenBase and EvtGenModels as a shared library and puts it into ./lib" - @echo "lib_archive: compiles EvtGenBase and EvtGenModels as an archive library and puts it into ./lib/archive" - @echo "libext_shared: compiles EvtGenExternal as a shared library and puts it into ./lib" - @echo "libext_archive: compiles EvtGenExternal as an archive library and puts it into ./lib/archive" - @echo "default: lib_shared lib_archive libext_shared libext_archive" - @echo "install: install generator to location specified by --prefix option" - @echo "clean: removes all libraries, executables and objects" - @echo "distclean: same as 'clean' plus removing ./config.mk, tmp/ and lib/ directories" - @echo "" - -.PHONY: distclean clean diff --git a/README b/README index e622db5..42bdf15 100644 --- a/README +++ b/README @@ -1,198 +1,198 @@ RELEASE NOTES ============= Please see History.txt for a detailed list of changes to this package. The major points comparing this version with the 2009 release are the following: 1. This version requires HepMC (version 2.04 and above) for storing event structures of particle decays, and can also use Pythia 8 (version 8.180 and above is required) and the C++ interfaced packages Photos (version 3.5.2 and above) and Tauola (version 1.0.7 and above). These external generators are included via engine classes in the new sub-directory EvtGenExternal. Two libraries can be created for EvtGen: i) libEvtGen.so contains the EvtGenBase and EvtGenModel core code/decay models, ii) libEvtGenExternal.so contains _only_ the code within EvtGenExternal. This means that the external generator interface can be ignored by not loading/creating the 2nd library libEvtGenExternal.so. In the installation instructions below, it is possible to select which external generators you want to use. Note, however, that the generic "DECAY.DEC" file contains Pythia decays, and if Pythia is not included in the build, these decays are not generated (in fact, they would need a new decay model specified). Likewise, if Photos is not included, there will be no radiative corrections done for particle decays. To use the external generators, use the following code: #include "EvtGenExternal/EvtExternalGenList.hh" #include "EvtGenBase/EvtAbsRadCorr.hh" #include "EvtGenBase/EvtDecayBase.hh" // Set up the default external generator list: Photos, Pythia and/or Tauola EvtExternalGenList genList; EvtAbsRadCorr* radCorrEngine = genList.getPhotosModel(); std::list extraModels = genList.getListOfModels(); // Create the EvtGen generator object EvtGen myGenerator("decayFile.dec", "evt.pdl", randomEnginePointer, radCorrEngine, &extraModels); //If you don't want to use external generators, use the following: //EvtGen myGenerator("decayFile.dec", "evt.pdl", randomEnginePointer); The files Pythia8_README.txt and Tauola_README.txt have more details about using the new Pythia 8 and Tauola generators (called via the PYTHIA and TAUOLA "decay.dec" model names). The new Photos generator is still called via the PHOTOS "decay.dec" model name. It is now possible to use alias particle decays for the Pythia 8 model. Two Pythia 8 instances are used in EvtPythiaEngine for normal and aliased decays. Since the underlying code for Photos and Tauola is still Fortran, it is only possible to have one (unique) instance of each of these external generators. This can only be fixed if these packages are converted to pure C++ code. 2. This version of EvtGen is effectively a merger of the latest LHCb and BaBar EvtGenBase and EvtGenModels code. Various decay models have been added, and there have been a range of bug fixes. 3. There is also a new Dalitz decay class model "GENERIC_DALITZ" (EvtGenModels/EvtGenericDalitz.cpp), that should be used instead of EvtDDalitz. The generic Dalitz model uses xml files to configure the resonance amplitude parameters (instead of being hardcoded in EvtDDalitz): Decay D+ 1.0 K- pi+ pi+ GENERIC_DALITZ MyDalitzParameters.xml; Enddecay Examples of xml Dalitz parameter files are given in the sub-directory validation/DalitzFiles, e.g. see DalitzDecays.xml. 4. It is possible to use decay files in xml format. Use the python script convertDecayFile.py for converting decay files to the new format. The src/EvtGen.cpp constructor has an additional boolean argument useXml that needs to be set to true if xml decay files are to be used (default is useXml=false). For example, DECAY_2010.XML is the xml version of DECAY_2010.DEC. 5. Bug fixes for Bs mixing decay/CP violation amplitudes. Added the capability to use either coherent or incoherent mixing in EvtCPUtil. One or the other can be chosen as the mixing method for the B system by choosing 0 (coherent) or 1 (incoherent) for the last integer argument in the EvtGen() constructor. BUILDING THE CODE ================= To build the EvtGen code, first make sure that there is a valid (C++) version of HepMC avilable: -HepMC http://lcgapp.cern.ch/project/simu/HepMC/ +HepMC http://hepmc.web.cern.ch//hepmc/ + +HepMC is used to store particle information. Optionally, it is possible to use other external generators, such as Pythia8 (for Pythia decays in the DECAY.DEC file, for example), Photos (for radiative corrections) and Tauola (for tau decays): Pythia8 http://home.thep.lu.se/~torbjorn/Pythia.html Photos http://photospp.web.cern.ch/photospp/ Tauola http://tauolapp.web.cern.ch/tauolapp/ -All of these packages have instructions for building them, usually by -running their "configure" script. HepMC is used to store particle information. +All of these packages have instructions for building them. -Once these packages are available, set up the EvtGen release by running +Once these packages are available, build the EvtGen release by creating a build directory +alongside the EvtGen source directory (assumed here to be called evtgen.git) and running: -./configure +cmake ../evtgen.git -within the EvtGen base directory, using the following options: +within the EvtGen build directory, using the following options: - --hepmcdir = location of HepMC build directory (mandatory) - --photosdir = location of Photos base directory (optional) - --pythiadir = location of Pythia base directory (optional) - --tauoladir = location of Tauola base directory (optional) + -DCMAKE_INSTALL_PREFIX= : Location in which to install EvtGen (highly recommended) -When successful, this will create a "config.mk" file that specifies the locations -of the include and library directories of these additional external generators. + -DHEPMC2_ROOT_DIR= : Location of HepMC install directory + While linking with HepMC is mandatory, depending on + your environment the installation may be detected + automatically. Failing this, you can specify the + location via this option. -Then compile the EvtGen code using + -DEVTGEN_PYTHIA=ON : Enable linking with Pythia 8 + -DPYTHIA8_ROOT_DIR= : Location of Pythia8 install directory + As with HepMC this may be automatically detected + depending on your build environment, otherwise the + location can be specified via this option. -make + -DEVTGEN_PHOTOS=ON : Enable linking with Photos++ + -DPHOTOSPP_ROOT_DIR= : Location of Photos++ install directory + As with HepMC this may be automatically detected + depending on your build environment, otherwise the + location can be specified via this option. -This should create the libraries lib/libEvtGen.so and lib/libEvtGenExternal.so, -as well as the archives lib/archive/libEvtGen.a and lib/archive/libEvtGenExternal.a. -The "EvtGenExternal" library will not be created if no external generators -are specified in the configuration script. + -DEVTGEN_TAUOLA=ON : Enable linking with Tauola++ + -DTAUOLAPP_ROOT_DIR= : Location of Tauola++ install directory + As with HepMC this may be automatically detected + depending on your build environment, otherwise the + location can be specified via this option. + -DEVTGEN_BUILD_TESTS=ON : Enable building executables in 'test' directory -Note that gfortran is needed to compile the code (mainly for Photos/Tauola). -The alternative (not recommended) compilers g77 (f77) can be used instead -by changing the FC variable in the configure script. + -DEVTGEN_BUILD_VALIDATIONS=ON : Enable building executables in 'validation' directory +Then compile and (optionally, although highly recommended) install the EvtGen code using -To create an EvtGen executable, the following libraries need to be included -in the link path, owing to the dependence on the above external packages and -Fortran code (for some EvtGenModels and for Photos/Tauola): - -BASEDIR = -HEPMCDIR = -PHOTOSDIR = -TAUOLADIR = -PYTHIADIR = +make +make install -LIBS = -L${BASEDIR}/lib -L${HEPMCDIR}/lib -L${PHOTOSDIR}/lib \ - -L${TAUOLADIR}/lib -L${PYTHIADIR}/lib -lgfortran \ - -lHepMC -lPhotosCxxInterface -lPhotosFortran -lTauolaCxxInterface -lTauolaFortran \ - -lpythia8 -llhapdfdummy -lEvtGen -lEvtGenExternal +This should create the libraries lib/libEvtGen.so and lib/libEvtGenExternal.so, +as well as the archives lib/archive/libEvtGen.a and lib/archive/libEvtGenExternal.a +(the "EvtGenExternal" library/archive will not be created if linking is not enabled for +any of the external generators). -Three example programs using EvtGen can be seen in the test sub-directory along -with the required Makefile. If there are errors about missing shared libraries, -and they have been built correctly, then the LD_LIBRARY_PATH needs to be set-up -to include them: +A series of validation and test executables are also created (discussed below). The +CMakeLists.txt file in these two directories can be used as a template for building any +user executables. -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}: -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}: -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}: -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}: -setenv LD_LIBRARY_PATH ${LD_LIBRARY_PATH}: +The build/install will also create CMake config files that allow the library targets to be +easily imported into other projects. To use Pythia 8, the environment variable PYTHIA8DATA needs to be set to the location of the corresponding xml documentation directory, which also contains the default values -for particle decays and models. - -setenv PYTHIA8DATA /xmldoc +for particle decays and models: /xmldoc Code validation =============== The validation sub-directory contains code validation test cases for Pythia, Tauola -and B mixing models. Run the "configure" script here, which should create a file -called extraConfig.mk, and build the examples using "make". Note that some extra -configuration may be necessary to set the location of the ROOT libraries, which are -only used to create ntuples and plots for the validation examples. +and B mixing models. + +Note that these executables also depend on ROOT, which is only used to create ntuples and +plots for the validation examples. The script genAllDecayExamples.sh runs other scripts that generate a range of decay modes using the genExampleRootFiles.cc program. The script compareAllDecays.sh runs a range of scripts that creates comparison plots using the compareRootFiles.cc program. For now, the comparisons use the same plots, but each of the "compare.sh" files can be edited to compare any two versions of ROOT data created by the genExampleRootFiles.cc program. The testCPVDecays.cc program runs a test for the B mixing decay model. + Examples ======== Some examples are provided in the test sub-directory. -To run these, first build EvtGen, then run "configure", then type "make" in the -test directory. Note that these tests require ROOT to be installed. +Note that these executables also depend on ROOT, which is only used to create ntuples and +plots for the validation examples. + Running the script "./do_tests" will run a series of EvtGen examples. Example decay files are in the test/exampleFiles sub-directory. diff --git a/configure b/configure deleted file mode 100755 index 51108eb..0000000 --- a/configure +++ /dev/null @@ -1,420 +0,0 @@ -#! /bin/bash - -#Package-specific:> - -GENERATOR=EvtGen -#VERSION=11 - -# === Default values of input parameters ==== -PATH_TO_EXTERNAL= -CLHEP_VERSION= -PREFIX=. -PYTHIADIR=${PYTHIADIR} -PHOTOSDIR=${PHOTOSDIR} -TAUOLADIR=${TAUOLADIR} -HEPMCDIR=${HEPMCDIR} -COMPMODE=OPT # Default: compiler optimization mode -EVTGEN_PHOTOS= -EVTGEN_PYTHIA= -EVTGEN_TAUOLA= -EVTGEN_EXTERNAL= - -#< - -#-------------------------------------------------------------- - -check_arguments () { - for arg in $* ; do - if [ "x$arg" = "x--enable-debug" ] ; then - COMPMODE=DBG - elif [ "x$arg" = "x--help" ] ; then - echo -e \ - "\nUsage: ./configure [options] , where options are:\n\n"\ - "--help : prints this help\n"\ - "--prefix=[installation path] : specifies installation path\n"\ - "--hepmcdir=[full directory path] : specifies location of HepMC base directory (required)\n"\ - "--pythiadir=[full directory path] : specifies location of Pythia 8 base directory (optional)\n"\ - "--photosdir=[full directory path] : specifies location of PHOTOS base directory (optional)\n"\ - "--tauoladir=[full directory path] : specifies location of TAUOLA base directory (optional)\n"\ - "--enable-debug : turns on debugging flags (optional)\n" - exit - else - if [ "x${arg}" = "x${arg/=/}" ] ; then - echo "${arg}: wrong option. Ignored." >&2 - else - option=${arg/=*/} - value=${arg/*=/} - if [ "x${option}" = "x--prefix" ] ; then - PREFIX=${value} - elif [ "x${option}" = "x--pythiadir" ] ; then - PYTHIADIR=${value} - elif [ "x${option}" = "x--hepmcdir" ] ; then - HEPMCDIR=${value} - elif [ "x${option}" = "x--photosdir" ] ; then - PHOTOSDIR=${value} - elif [ "x${option}" = "x--tauoladir" ] ; then - TAUOLADIR=${value} - else - echo "${arg}: wrong option. Ignored." >&2 - fi - fi - fi - done - return -} - -#--------------------------------------- - -# Check that we can see (some of) the header files for the external generators. -# If not, print a warning message and ask the user to re-run configure -# specifying the base directory correct location(s). - -check_dirs() { - - echo "PREFIX = $PREFIX" - - hepmcFile=${HEPMCDIR}/include/HepMC/GenParticle.h - pythiaFile=${PYTHIADIR}/include/Pythia8/Pythia.h - photosFile=${PHOTOSDIR}/include/Photos/Photos.h - tauolaFile=${TAUOLADIR}/include/Tauola/Tauola.h - - stop=0 - if [ -f $hepmcFile ]; then - echo "HEPMCDIR set to $HEPMCDIR"; - else - echo "Mandatory: please specify the location of the HepMC base directory"\ - "using the configure option --hepmcdir=[full directory path]"\ - "or set the HEPMCDIR environment variable" - stop=1 - fi - - if [ -f $pythiaFile ]; then - echo "PYTHIADIR set to $PYTHIADIR"; - EVTGEN_PYTHIA=1 - EVTGEN_EXTERNAL=1 - else - echo "To use PYTHIA: --pythiadir=[full directory path] or set the PYTHIADIR"\ - "environment variable" - fi - - - if [ -f $photosFile ]; then - echo "PHOTOSDIR set to $PHOTOSDIR"; - EVTGEN_PHOTOS=1 - EVTGEN_EXTERNAL=1 - else - echo "To use PHOTOS: --photosdir=[full directory path] or set the PHOTOSDIR"\ - " environment variable" - fi - - if [ -f $tauolaFile ]; then - echo "TAUOLADIR set to $TAUOLADIR"; - EVTGEN_TAUOLA=1 - EVTGEN_EXTERNAL=1 - else - echo "To use TAUOLA: --tauoladir=[full directory path] or set the TAUOLADIR"\ - " environment variable" - fi - - if [ $stop = 1 ] ; then - exit 1 - fi - -} - -#-------------------------------------------------------------- - -check_extlibs () { - - # Set default shared libary lists for external packages - HEPMCLIBLIST="-lHepMC" - - # For PHOTOS version 3.61 and above: default setting. - # Aside: avoid 3.60 since this does not work properly for EvtGen! - PHOTOSLIBLIST="-lPhotospp -lPhotosppHepMC" - # For PHOTOS version 3.56 and below: check to see - # if we need to modify this library list - if [ -f ${PHOTOSDIR}/lib/libPhotosFortran.so ]; then - PHOTOSLIBLIST="-lPhotosCxxInterface -lPhotosFortran" - fi - - TAUOLALIBLIST="-lTauolaCxxInterface -lTauolaFortran" - - PYTHIALIBLIST="-lpythia8" - # For PYTHIA 8.1x and below, check to see if we need lhapdfdummy - if [ -f ${PYTHIADIR}/lib/liblhapdfdummy.so ]; then - PYTHIALIBLIST="-lpythia8 -llhapdfdummy" - fi - -} - -#------------------------------------------------------------- - -check_arguments $* -check_dirs -check_extlibs - -echo "Compilation mode is ${COMPMODE}" - -#Package-specific:> - -# -# User-changeable part, experts ----------------------------- -# -CXX=g++ -CXXFLAGS_OPT="-O2 -Wall" -CXXFLAGS_DBG="-g -Wall" -CFLAGS_OPT=-O2 -CFLAGS_DBG=-g -FC=gfortran -FFLAGS_OPT="-O2 -Wuninitialized" -FFLAGS_DBG=-g - -FFLAGSSHARED=-fPIC -CFLAGSSHARED=-fPIC -CXXFLAGSSHARED=-fPIC - -LDFLAGSSHARED="${CXXFLAGS_OPT} -pthread -fPIC" - -# -# Find platform. -# -ARCH=`uname` -theGcc=`g++ --version | grep '[0-9]\.[0-9]\.[0-9]' -o | head -1 | awk -F . '{print $1}'` -if [ ${theGcc} = 4 ]; then - ARCH=${ARCH}-gcc4 -fi -if [ ${theGcc} = 5 ]; then - ARCH=${ARCH}-gcc5 -fi -if [ ${theGcc} = 6 ]; then - ARCH=${ARCH}-gcc6 -fi -echo "Platform is $ARCH" - -#default platform settings: -FFLAGS="${FFLAGS_OPT}" -CFLAGS="${CFLAGS_OPT}" -CXXFLAGS="${CXXFLAGS_OPT}" -FLIBS="-lfrtbegin -lg2c" -SOFLAGS="-soname" - -if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" -fi -if [ ${COMPMODE} = DBG ]; then - FFLAGS="${FFLAGS_DBG}" - CFLAGS="${CFLAGS_DBG}" - CXXFLAGS="${CXXFLAGS_DBG}" -fi -if [ $ARCH = Linux ]; then - FFLAGS="${FFLAGS_OPT} -Wno-globals" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - FLIBS="-lfrtbegin -lg2c" - if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - fi - if [ ${COMPMODE} = DBG ]; then - FFLAGS="${FFLAGS_DBG} -Wno-globals" - CFLAGS="${CFLAGS_DBG}" - CXXFLAGS="${CXXFLAGS_DBG}" - fi -fi - -# Linux platform with gcc4: new Fortran90 compiler. -if [ $ARCH = Linux-gcc4 ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - FLIBS="-lgfortran" - if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - fi - if [ ${COMPMODE} = DBG ]; then - FFLAGS="${FFLAGS_DBG}" - CFLAGS="${CFLAGS_DBG}" - CXXFLAGS="${CXXFLAGS_DBG}" - fi -fi -if [ $ARCH = Linux-gcc5 ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - FLIBS="-lgfortran" - if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - fi - if [ ${COMPMODE} = DBG ]; then - FFLAGS="${FFLAGS_DBG}" - CFLAGS="${CFLAGS_DBG}" - CXXFLAGS="${CXXFLAGS_DBG}" - fi -fi -if [ $ARCH = Linux-gcc6 ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - FLIBS="-lgfortran" - if [ ${COMPMODE} = OPT ]; then - FFLAGS="${FFLAGS_OPT}" - CFLAGS="${CFLAGS_OPT}" - CXXFLAGS="${CXXFLAGS_OPT}" - fi - if [ ${COMPMODE} = DBG ]; then - FFLAGS="${FFLAGS_DBG}" - CFLAGS="${CFLAGS_DBG}" - CXXFLAGS="${CXXFLAGS_DBG}" - fi -fi - -# Add C++14 options if required -theGcc2=`g++ --version | grep '[0-9]\.[0-9]\.[0-9]' -o | head -1 | awk -F . '{print $2}'` -gccVar=`echo $theGcc` -gccVar2=`echo $theGcc2` -# Flag to make sure c++14 is enabled for compiling certain classes, e.g. MT random engine. -CPP11=1 -# Check that we have gcc version 4.7 and above -if [ $gccVar -le 4 ]; then - if [ $gccVar2 -le 6 ]; then - echo "Not enabling c++14 features" - CPP11=0 - fi -fi - -if [ $CPP11 = 1 ]; then - echo "c++14 is enabled" -fi - -# Mac OS platform with gcc4 -if [[ $ARCH == Darwin* ]]; then - tt=`gfortran -print-search-dirs|grep libraries|cut -d'=' -f2|sed 's/:/ /g'` - LIBGFORTRANLOCATION='' - for i in $tt - do - if [ -e $i/libgfortran.so ] - then - LIBGFORTRANLOCATION=$i - break - elif [ -e $i/libgfortran.dylib ] - then - LIBGFORTRANLOCATION=$i - break - fi - done - FLIBS="-L${LIBGFORTRANLOCATION} -lgfortran" - SOFLAGS="-install_name" -fi - -#Platform & opt/dbg - independent flags and variables: - -echo -n "Creating config.mk ... " - -rm -f config.mk - -cat > config.mk << EOF - -GENERATOR = ${GENERATOR} -VERSION = ${VERSION} - -PREFIX = ${PREFIX} - -SHELL = /bin/bash -ARCH = ${ARCH} -LCGPLATFORM = ${LCGPLATFORM} -FC = ${FC} -FFLAGS = ${FFLAGS} -CFLAGS = ${CFLAGS} -CXX = ${CXX} -CXXFLAGS = ${CXXFLAGS} -SOFLAGS = ${SOFLAGS} - -EVTGENDIR = $(pwd) - -TMPDIR = \$(EVTGENDIR)/tmp -INCLUDEDIR = \$(EVTGENDIR) - -HEPMCDIR = ${HEPMCDIR} -HEPMCINCDIR = ${HEPMCDIR}/include -HEPMCLIBDIR = ${HEPMCDIR}/lib -HEPMCLIBLIST = ${HEPMCLIBLIST} - -SRCDIR = \$(EVTGENDIR)/src -LIBDIR_SHARED = \$(EVTGENDIR)/lib -LIBDIR_ARCHIVE = \$(EVTGENDIR)/lib/archive -LIBDIRLIST = -lEvtGen - -LIB_SHARED = \$(LIBDIR_SHARED)/lib\$(GENERATOR).so -LIB_ARCHIVE = \$(LIBDIR_ARCHIVE)/lib\$(GENERATOR).a - -LIBEXT_SHARED = \$(LIBDIR_SHARED)/lib\$(GENERATOR)External.so -LIBEXT_ARCHIVE = \$(LIBDIR_ARCHIVE)/lib\$(GENERATOR)External.a - -# Flags: -# -FFLAGSSHARED = ${FFLAGSSHARED} -CFLAGSSHARED = ${CFLAGSSHARED} -CXXFLAGSSHARED = ${CXXFLAGSSHARED} - -LDFLAGSSHARED = ${LDFLAGSSHARED} - -FLIBS = ${FLIBS} - -# External generators: - -EVTGEN_EXTERNAL = ${EVTGEN_EXTERNAL} - -EOF - -if [ "${EVTGEN_PYTHIA}" == "1" ] ; then - echo "EVTGEN_PYTHIA = 1" >> config.mk - echo "EXTRAFLAGS += -D EVTGEN_PYTHIA" >> config.mk - echo "PYTHIADIR = ${PYTHIADIR}" >> config.mk - echo "PYTHIAINCDIR = ${PYTHIADIR}/include" >> config.mk - echo "PYTHIALIBDIR = ${PYTHIADIR}/lib" >> config.mk - echo "PYTHIALIBLIST = ${PYTHIALIBLIST}" >> config.mk -fi - -if [ "${EVTGEN_PHOTOS}" == "1" ] ; then - echo "EVTGEN_PHOTOS = 1" >> config.mk - echo "EXTRAFLAGS += -D EVTGEN_PHOTOS" >> config.mk - echo "PHOTOSDIR = ${PHOTOSDIR}" >> config.mk - echo "PHOTOSINCDIR = ${PHOTOSDIR}/include" >> config.mk - echo "PHOTOSLIBDIR = ${PHOTOSDIR}/lib" >> config.mk - echo "PHOTOSLIBLIST = ${PHOTOSLIBLIST}" >> config.mk -fi - -if [ "${EVTGEN_TAUOLA}" == "1" ] ; then - echo "EVTGEN_TAUOLA = 1" >> config.mk - echo "EXTRAFLAGS += -D EVTGEN_TAUOLA" >> config.mk - echo "TAUOLADIR = ${TAUOLADIR}" >> config.mk - echo "TAUOLAINCDIR = ${TAUOLADIR}/include" >> config.mk - echo "TAUOLALIBDIR = ${TAUOLADIR}/lib" >> config.mk - echo "TAUOLALIBLIST = ${TAUOLALIBLIST}" >> config.mk -fi - -if [ ${CPP11} == "1" ] ; then - echo "" >> config.mk - echo "# c++14 features:" >> config.mk - echo "EVTGEN_CPP11 = 1" >> config.mk - echo "CXXFLAGS += -std=c++14 -D EVTGEN_CPP11" >> config.mk -fi - - -echo " done" - -set -v -mkdir -p tmp/ tmp/EvtGenBase tmp/EvtGenModels tmp_ext/EvtGenExternal lib/ lib/archive -set +v - -echo -e "\n\nType 'make' to build everything or 'make help' to list build targets.\n\n" - -exit diff --git a/setupEvtGen.sh b/setupEvtGen.sh index fa7f2e1..bd0d76f 100644 --- a/setupEvtGen.sh +++ b/setupEvtGen.sh @@ -1,110 +1,110 @@ #!/bin/bash # This script installs EvtGen with all external dependencies. The variable VERSION specifies the # tag of EvtGen you want to use. The list of available tags can be found by either going to the url # https://phab.hepforge.org/source/evtgen/tags/master # or issuing the command (without the need to clone the git repository) # git ls-remote --tags http://phab.hepforge.org/source/evtgen.git | cut -d '/' -f3 # Note that some earlier EvtGen versions will not be compatible with all external dependency # versions given below, owing to C++ interface differences; see the specific tagged version of # the EvtGen/README file for guidance. # To obtain this script use the "Download File" option on the right of the webpage: # https://phab.hepforge.org/source/evtgen/browse/master/setupEvtGen.sh?view=raw # Version or tag number. No extra spaces on this line! VERSION=cmake # Pythia version number with no decimal points, e.g. 8230 corresponds to version 8.230. This # follows the naming convention of Pythia install tar files. Again, no extra spaces allowed PYTHIAVER=8230 PYTHIAPKG="pythia"$PYTHIAVER PYTHIATAR=$PYTHIAPKG".tgz" echo Pythia version set to $PYTHIAVER, package tar name $PYTHIATAR mkdir -p EvtGen cd EvtGen INSTALL_BASE=`pwd` echo Will setup EvtGen $VERSION in $INSTALL_BASE echo Downloading EvtGen from GIT -git clone http://phab.hepforge.org/source/evtgen.git evtgen.git +git clone https://phab.hepforge.org/source/evtgen.git evtgen.git cd evtgen.git #git checkout -b $VERSION $VERSION git checkout $VERSION cd $INSTALL_BASE # Replace the above lines with the following one for the "head" version #git clone http://phab.hepforge.org/source/evtgen.git evtgen.git osArch=`uname` echo Downloading external dependencies mkdir -p external cd external -# Recommended versions of the external packages. HepMC is mandatory. +# Recommended versions of the external packages. HepMC is mandatory. # Later versions should be OK as well, assuming their C++ interfaces do not change -curl -O http://lcgapp.cern.ch/project/simu/HepMC/download/HepMC-2.06.09.tar.gz +curl -O http://hepmc.web.cern.ch/hepmc/releases/hepmc2.06.09.tgz curl -O http://home.thep.lu.se/~torbjorn/pythia8/$PYTHIATAR curl -O http://photospp.web.cern.ch/photospp/resources/PHOTOS.3.61/PHOTOS.3.61.tar.gz curl -O http://tauolapp.web.cern.ch/tauolapp/resources/TAUOLA.1.1.6c/TAUOLA.1.1.6c.tar.gz echo Extracting external dependencies -tar -xzf HepMC-2.06.09.tar.gz +tar -xzf hepmc2.06.09.tgz tar -xzf $PYTHIATAR tar -xzf PHOTOS.3.61.tar.gz tar -xzf TAUOLA.1.1.6c.tar.gz # Patch TAUOLA and PHOTOS on Darwin (Mac) if [ "$osArch" == "Darwin" ] then patch -p0 < $INSTALL_BASE/evtgen.git/platform/tauola_Darwin.patch patch -p0 < $INSTALL_BASE/evtgen.git/platform/photos_Darwin.patch fi echo Installing HepMC in $INSTALL_BASE/external/HepMC mkdir -p HepMC mkdir -p HepMC.build cd HepMC.build -cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_BASE/external/HepMC $INSTALL_BASE/external/HepMC-2.06.09 -Dmomentum:STRING=GEV -Dlength:STRING=MM +cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_BASE/external/HepMC $INSTALL_BASE/external/hepmc2.06.09 -Dmomentum:STRING=GEV -Dlength:STRING=MM make make install echo Installing pythia8 in $INSTALL_BASE/external/$PYTHIAPKG cd ../$PYTHIAPKG if [ "$PYTHIAVER" -lt "8200" ] then ./configure --with-hepmc=$INSTALL_BASE/external/HepMC --with-hepmcversion=2.06.09 --enable-shared else ./configure --with-hepmc2=$INSTALL_BASE/external/HepMC --enable-shared fi make echo Installing PHOTOS in $INSTALL_BASE/external/PHOTOS cd ../PHOTOS ./configure --with-hepmc=$INSTALL_BASE/external/HepMC make echo Installing TAUOLA in $INSTALL_BASE/external/TAUOLA cd ../TAUOLA ./configure --with-hepmc=$INSTALL_BASE/external/HepMC make echo Building EvtGen cd $INSTALL_BASE mkdir -p evtgen.build mkdir -p evtgen cd evtgen.build cmake -DCMAKE_INSTALL_PREFIX=$INSTALL_BASE/evtgen $INSTALL_BASE/evtgen.git -DEVTGEN_PYTHIA=ON -DEVTGEN_PHOTOS=ON -DEVTGEN_TAUOLA=ON make make install cd $INSTALL_BASE/evtgen echo Setup done. echo To complete, set the Pythia8 data path: if [ "$PYTHIAVER" -lt "8200" ] then echo PYTHIA8DATA=$INSTALL_BASE/external/$PYTHIAPKG/xmldoc else echo PYTHIA8DATA=$INSTALL_BASE/external/$PYTHIAPKG/share/Pythia8/xmldoc fi diff --git a/src/Makefile b/src/Makefile deleted file mode 100644 index af6461a..0000000 --- a/src/Makefile +++ /dev/null @@ -1,125 +0,0 @@ -include ../config.mk - -TMPDIR=../tmp -EXTTMPDIR=../tmp_ext - -sources := './EvtGen.cpp' -sources += $(shell find './EvtGenBase' -type 'f' -name '*.cpp') -sources += $(shell find './EvtGenModels' -type 'f' -name '*.cpp') -sources += $(shell find './EvtGenBase' -type 'f' -name '*.[Ff]') -sources += $(shell find './EvtGenModels' -type 'f' -name '*.[Ff]') -objects := $(shell echo $(sources) | sed 's,\./,$(TMPDIR)/,g;s,\.cpp,\.o,g;s,\.F,\.o,g;') -mkfiles := $(shell echo $(sources) | sed 's,\./,$(TMPDIR)/,g;s,\.cpp,\.mk,g;s,\.F,\.mk,g;s,\.f,\.mk,g;') - -extsources := $(shell find './EvtGenExternal' -type 'f' -name '*.cpp') -extsources += $(shell find './EvtGenExternal' -type 'f' -name '*.[Ff]') -extobjects := $(shell echo $(extsources) | sed 's,\./,$(EXTTMPDIR)/,g;s,\.cpp,\.o,g;s,\.F,\.o,g;') -extmkfiles := $(shell echo $(extsources) | sed 's,\./,$(EXTTMPDIR)/,g;s,\.cpp,\.mk,g;s,\.F,\.mk,g;s,\.f,\.mk,g;') - -lib_shared: $(LIB_SHARED) - -lib_archive: $(LIB_ARCHIVE) - -libext_shared: $(LIBEXT_SHARED) - -libext_archive: $(LIBEXT_ARCHIVE) - -coreShLibs=-L$(HEPMCLIBDIR) $(HEPMCLIBLIST) - -extShLibs=-L$(HEPMCLIBDIR) $(HEPMCLIBLIST) - -coreIncDir=-I$(INCLUDEDIR) -coreIncDir+=-I$(HEPMCINCDIR) - -extIncDir=-I$(INCLUDEDIR) -extIncDir+=-I$(HEPMCINCDIR) - -ifeq ($(EVTGEN_PHOTOS),1) - extShLibs+=-L$(PHOTOSLIBDIR) $(PHOTOSLIBLIST) - extIncDir+=-I$(PHOTOSINCDIR) -endif -ifeq ($(EVTGEN_TAUOLA),1) - extShLibs+=-L$(TAUOLALIBDIR) $(TAUOLALIBLIST) - extIncDir+=-I$(TAUOLAINCDIR) -endif -ifeq ($(EVTGEN_PYTHIA),1) - extShLibs+=-L$(PYTHIALIBDIR) $(PYTHIALIBLIST) - extIncDir+=-I$(PYTHIAINCDIR) -endif - -extShLibs+=-L$(LIBDIR_SHARED) $(LIBDIRLIST) - -# Core -$(LIB_SHARED) : $(objects) - mkdir -p $(LIBDIR_SHARED) - @echo creating the shared library $@ - $(CXX) $(LDFLAGSSHARED) $(objects) -o $@ -shared -Wl,$(SOFLAGS),$(notdir $@) $(FLIBS) \ - $(coreShLibs) - -$(LIB_ARCHIVE) : $(objects) - ar cru $(LIB_ARCHIVE) $(objects) - -# External -$(LIBEXT_SHARED) : $(extobjects) - mkdir -p $(LIBDIR_SHARED) - @echo creating the shared library $@ - $(CXX) $(LDFLAGSSHARED) $(extobjects) -o $@ -shared -Wl,$(SOFLAGS),$(notdir $@) $(FLIBS) \ - $(extShLibs) - -$(LIBEXT_ARCHIVE) : $(extobjects) - ar cru $(LIBEXT_ARCHIVE) $(extobjects) - -#---- The following is for dependency checking: - -$(TMPDIR)/%.mk: %.cpp - echo $(coreIncDir) - $(CXX) -MM $(CXXFLAGS) $< $(coreIncDir) | sed 's,[^ ]*\.o:,$(TMPDIR)/&,' > $@ - -$(TMPDIR)/%.mk: %.F - $(FC) $(FFLAGS) -c $< -I$(INCLUDEDIR) | sed 's,[^ ]*\.o:,$(TMPDIR)/&,' > $@ - - -$(EXTTMPDIR)/%.mk: %.cpp - echo $(extIncDir) - $(CXX) -MM $(CXXFLAGS) $(EXTRAFLAGS) $< $(extIncDir) | sed 's,[^ ]*\.o:,$(EXTTMPDIR)/&,' > $@ - -$(EXTTMPDIR)/%.mk: %.F - $(FC) $(FFLAGS) -c $< -I$(INCLUDEDIR) | sed 's,[^ ]*\.o:,$(EXTTMPDIR)/&,' > $@ - - -ifneq ($(MAKECMDGOALS),clean) - ifneq ($(mkfiles),) - -include $(mkfiles) - endif -endif - -#---- - -$(TMPDIR)/%.o : %.cpp $(TMPDIR)/%.mk - $(CXX) $(CXXFLAGS) $(CXXFLAGSSHARED) -c -o $@ $< $(coreIncDir) - -$(TMPDIR)/%.o: %.F $(TMPDIR)/%.mk - $(FC) $(FFLAGS) $(FFLAGSSHARED) -c -o $@ $< -I$(INCLUDEDIR) - -$(TMPDIR)/%.o: %.f $(TMPDIR)/%.mk - $(FC) $(FFLAGS) $(FFLAGSSHARED) -c -o $@ $< -I$(INCLUDEDIR) - - -$(EXTTMPDIR)/%.o : %.cpp $(EXTTMPDIR)/%.mk - $(CXX) $(CXXFLAGS) $(CXXFLAGSSHARED) $(EXTRAFLAGS) -c -o $@ $< $(extIncDir) - -$(EXTTMPDIR)/%.o: %.F $(EXTTMPDIR)/%.mk - $(FC) $(FFLAGS) $(FFLAGSSHARED) -c -o $@ $< -I$(INCLUDEDIR) - -$(EXTTMPDIR)/%.o: %.f $(EXTTMPDIR)/%.mk - $(FC) $(FFLAGS) $(FFLAGSSHARED) -c -o $@ $< -I$(INCLUDEDIR) - -.PHONY: clean - -clean: - rm -f *~ - rm -f $(objects) $(mkfiles) $(extobjects) $(extmkfiles) - rm -f $(LIB_SHARED) - rm -f $(LIB_ARCHIVE) - rm -f $(LIBEXT_SHARED) - rm -f $(LIBEXT_ARCHIVE) diff --git a/test/Makefile b/test/Makefile deleted file mode 100644 index bbcb493..0000000 --- a/test/Makefile +++ /dev/null @@ -1,68 +0,0 @@ -# Base directory where the EvtGen libraries are -BASEDIR = ../ - -# Read in the config.mk file in the base directory to extract where -# the external libraries are, as well as setting compiler flags etc.. - -include ${BASEDIR}/config.mk -include extraConfig.mk - -# Need to first add EvtGen libraries, then HepMC, then Photos, Tauola and Pythia, -# since Photos depends on HepMC etc.. - -allLibDir=-L$(HEPMCLIBDIR) -allLibs=$(HEPMCLIBLIST) - -ifeq ("$(EVTGEN_PHOTOS)", "1") - allLibDir+=-L$(PHOTOSLIBDIR) - allLibs+=$(PHOTOSLIBLIST) -endif - -ifeq ("$(EVTGEN_PYTHIA)", "1") - allLibDir+=-L$(PYTHIALIBDIR) - allLibs+=$(PYTHIALIBLIST) -endif - -ifeq ("$(EVTGEN_TAUOLA)", "1") - allLibDir+=-L$(TAUOLALIBDIR) - allLibs+=$(TAUOLALIBLIST) -endif - -evtgenLibs=-lEvtGen -ifeq ($(EVTGEN_EXTERNAL),1) - evtgenLibs+=-lEvtGenExternal - EXTRAFLAGS+= -D EVTGEN_EXTERNAL -endif - -GENLIBS = -L${BASEDIR}/lib ${allLibDir} -lgfortran ${allLibs} ${evtgenLibs} - -INCLUDEDIR = ${BASEDIR} - -CXXFLAGS += $(ROOTCFLAGS) -LIBS = $(ROOTLIBS) -NGLIBS = $(ROOTGLIBS) -NGLIBS += -lMinuit -GLIBS = $(filter-out -lNew, $(NGLIBS)) - -.SUFFIXES: .cc - -# ================================================================================ -default: evtgenlhc_test1 evt_dalitz example1 exampleWriteHepMC - -evtgenlhc_test1: evtgenlhc_test1.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o evtgenlhc_test1 evtgenlhc_test1.o $(GENLIBS) $(LIBS) - -evt_dalitz: evt_dalitz.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o evt_dalitz evt_dalitz.o $(GENLIBS) $(LIBS) - -example1: example1.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o example1 example1.o $(GENLIBS) $(LIBS) - -exampleWriteHepMC: exampleWriteHepMC.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o exampleWriteHepMC exampleWriteHepMC.o $(GENLIBS) $(LIBS) - -.cc.o: - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -c -o $@ $< -I$(INCLUDEDIR) -I$(HEPMCINCDIR) - -clean: - rm -f evtgenlhc_test1 evt_dalitz example1 *.o diff --git a/test/configure b/test/configure deleted file mode 100644 index e86bdb7..0000000 --- a/test/configure +++ /dev/null @@ -1,81 +0,0 @@ -#! /bin/bash - -#Package-specific:> - -# === Default values of input parameters ==== -ROOTSYS= -COMPMODE=OPT # Default: compiler optimization mode - -#-------------------------------------------------------------- - -check_arguments () { - for arg in $* ; do - if [ "x$arg" = "x--enable-debug" ] ; then - COMPMODE=DBG - elif [ "x$arg" = "x--help" ] ; then - echo -e \ - "\nUsage: ./configure [options] , where options are:\n\n"\ - "--help : prints this help\n"\ - "--rootdir=[full directory path] : specifies location of ROOT base directory (ROOTSYS)\n"\ - "--enable-debug : turns on debugging flags\n" - exit - else - if [ "x${arg}" = "x${arg/=/}" ] ; then - echo "${arg}: wrong option. Ignored." >&2 - else - option=${arg/=*/} - value=${arg/*=/} - if [ "x${option}" = "x--rootdir" ] ; then - ROOTSYS=${value} - else - echo "${arg}: wrong option. Ignored." >&2 - fi - fi - fi - done - return -} - -#-------------------------------------------------------- - -set_rootvars() { - - # Check that the ROOTSYS variable is set - if [ -z ${ROOTSYS} ] ; then - ROOTSYS=`root-config --prefix` - fi - - echo "ROOTSYS set to ${ROOTSYS}" - - ROOTCFLAGS=`${ROOTSYS}/bin/root-config --cflags` - ROOTLIBS=`${ROOTSYS}/bin/root-config --libs` - ROOTGLIBS=`${ROOTSYS}/bin/root-config --glibs` - -} - -#-------------------------------------------------------- - -check_arguments $* -set_rootvars - -echo "Compilation mode is ${COMPMODE}" - -echo -n "Creating extraConfig.mk ... " - -rm -f extraConfig.mk - -cat > extraConfig.mk << EOT - -# Set ROOT environment variables -ROOTSYS = ${ROOTSYS} -ROOTCFLAGS = ${ROOTCFLAGS} -ROOTLIBS = ${ROOTLIBS} -ROOTGLIBS = ${ROOTGLIBS} -#< -EOT - -echo " done" - -echo -e "\n\nType 'make' to build everything or 'make help' to list build targets.\n\n" - -exit diff --git a/validation/Makefile b/validation/Makefile deleted file mode 100644 index 1617af4..0000000 --- a/validation/Makefile +++ /dev/null @@ -1,70 +0,0 @@ -# Base directory where the EvtGen libraries are -BASEDIR = ../ - -# Read in the config.mk file in the base directory to extract where -# the external libraries are as well as setting other compiler flags/variables -include ${BASEDIR}/config.mk -include extraConfig.mk - -# Need to first add EvtGen libraries, then HepMC, then Photos, Tauola and Pythia, -# since Photos depends on HepMC etc.. - -allLibDir=-L$(HEPMCLIBDIR) -allLibs=$(HEPMCLIBLIST) - -ifeq ("$(EVTGEN_PHOTOS)", "1") - allLibDir+=-L$(PHOTOSLIBDIR) - allLibs+=$(PHOTOSLIBLIST) -endif - -ifeq ("$(EVTGEN_PYTHIA)", "1") - allLibDir+=-L$(PYTHIALIBDIR) - allLibs+=$(PYTHIALIBLIST) -endif - -ifeq ("$(EVTGEN_TAUOLA)", "1") - allLibDir+=-L$(TAUOLALIBDIR) - allLibs+=$(TAUOLALIBLIST) -endif - -evtgenLibs=-lEvtGen -ifeq ($(EVTGEN_EXTERNAL),1) - evtgenLibs+=-lEvtGenExternal - EXTRAFLAGS+= -D EVTGEN_EXTERNAL -endif - -GENLIBS = -L${BASEDIR}/lib ${allLibDir} -lgfortran ${allLibs} ${evtgenLibs} - -INCLUDEDIR = ${BASEDIR} - -CXXFLAGS += $(ROOTCFLAGS) -LIBS = $(ROOTLIBS) -NGLIBS = $(ROOTGLIBS) -NGLIBS += -lMinuit -GLIBS = $(filter-out -lNew, $(NGLIBS)) - -.SUFFIXES: .cc - -# ================================================================================ -default: genExampleRootFiles compareRootFiles testCPVDecays genRootDecayChain - -genExampleRootFiles: genExampleRootFiles.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o genExampleRootFiles genExampleRootFiles.o \ - $(GENLIBS) $(LIBS) - -compareRootFiles: compareRootFiles.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o compareRootFiles compareRootFiles.o $(LIBS) - -testCPVDecays: testCPVDecays.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o testCPVDecays testCPVDecays.o \ - $(GENLIBS) $(LIBS) - -genRootDecayChain: genRootDecayChain.o - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -o genRootDecayChain genRootDecayChain.o \ - $(GENLIBS) $(LIBS) - -.cc.o: - $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) -c -o $@ $< -I$(INCLUDEDIR) -I$(HEPMCINCDIR) - -clean: - rm -f genExampleRootFiles compareRootFiles testCPVDecays genRootDecayChain *.o diff --git a/validation/configure b/validation/configure deleted file mode 100755 index ba60b17..0000000 --- a/validation/configure +++ /dev/null @@ -1,83 +0,0 @@ -#! /bin/bash - -#Package-specific:> - -# === Default values of input parameters ==== -ROOTSYS= -COMPMODE=OPT # Default: compiler optimization mode - -#< - -#-------------------------------------------------------------- - -check_arguments () { - for arg in $* ; do - if [ "x$arg" = "x--enable-debug" ] ; then - COMPMODE=DBG - elif [ "x$arg" = "x--help" ] ; then - echo -e \ - "\nUsage: ./configure [options] , where options are:\n\n"\ - "--help : prints this help\n"\ - "--rootdir=[full directory path] : specifies location of ROOT base directory (ROOTSYS)\n"\ - "--enable-debug : turns on debugging flags\n" - exit - else - if [ "x${arg}" = "x${arg/=/}" ] ; then - echo "${arg}: wrong option. Ignored." >&2 - else - option=${arg/=*/} - value=${arg/*=/} - if [ "x${option}" = "x--rootdir" ] ; then - ROOTSYS=${value} - else - echo "${arg}: wrong option. Ignored." >&2 - fi - fi - fi - done - return -} - -#-------------------------------------------------------- - -set_rootvars() { - - # Check that the ROOTSYS variable is set - if [ -z ${ROOTSYS} ] ; then - ROOTSYS=`root-config --prefix` - fi - - echo "ROOTSYS set to ${ROOTSYS}" - - ROOTCFLAGS=`${ROOTSYS}/bin/root-config --cflags` - ROOTLIBS=`${ROOTSYS}/bin/root-config --libs` - ROOTGLIBS=`${ROOTSYS}/bin/root-config --glibs` - -} - -#-------------------------------------------------------- - -check_arguments $* -set_rootvars - -echo "Compilation mode is ${COMPMODE}" - -echo -n "Creating extraConfig.mk ... " - -rm -f extraConfig.mk - -cat > extraConfig.mk << EOT - -# Set ROOT environment variables -ROOTSYS = ${ROOTSYS} -ROOTCFLAGS = ${ROOTCFLAGS} -ROOTLIBS = ${ROOTLIBS} -ROOTGLIBS = ${ROOTGLIBS} -#< -EOT - -echo " done" - -echo -e "\n\nType 'make' to build everything or 'make help' to list build targets.\n\n" - -exit