diff --git a/Event/xAOD/xAODJet/CMakeLists.txt b/Event/xAOD/xAODJet/CMakeLists.txt index 2de2058ff220b187a1fe054b94477162131e0adf..22eca9fb7b5b94c6bb492a9b13b05d6fe5786f89 100644 --- a/Event/xAOD/xAODJet/CMakeLists.txt +++ b/Event/xAOD/xAODJet/CMakeLists.txt @@ -1,7 +1,4 @@ -# $Id: CMakeLists.txt 801071 2017-03-20 22:11:25Z delsart $ -################################################################################ -# Package: xAODJet -################################################################################ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration # Declare the package name: atlas_subdir( xAODJet ) @@ -14,45 +11,28 @@ set( extra_test_libs ) # Extra dependencies, when we are not in a standalone build: if( NOT XAOD_STANDALONE ) - set( extra_private_deps Control/SGTools ) set( extra_test_libs SGTools ) else() - set( extra_private_deps Control/xAODRootAccess ) set( extra_test_libs xAODRootAccess ) endif() -if( NOT SIMULATIONBASE ) - set( extra_deps Event/xAOD/xAODBTagging Event/xAOD/xAODTrigger Event/xAOD/xAODPFlow) +if( NOT SIMULATIONBASE AND NOT GENERATIONBASE ) + set( extra_srcs Root/JetTrigAuxContainer*.cxx ) set( extra_libs xAODBTagging xAODPFlow xAODTrigger ) endif() -if (BUILDVP1LIGHT) - if( BUILDVP1LIGHT_DIST STREQUAL "ubuntu") - set( extra_libs ${extra_libs} GenVector ) - endif() +if( BUILDVP1LIGHT AND ( BUILDVP1LIGHT_DIST STREQUAL "ubuntu" ) ) + list( APPEND extra_libs GenVector ) endif() - -# Declare the package's dependencies: -atlas_depends_on_subdirs( - PUBLIC - Control/AthContainers - Control/AthLinks - Event/xAOD/xAODBase - Event/xAOD/xAODCore - ${extra_deps} - PRIVATE - Control/CxxUtils - Event/xAOD/xAODCaloEvent - ${extra_private_deps} ) - # External dependencies: find_package( ROOT COMPONENTS Core GenVector ) # Component(s) in the package: atlas_add_library( xAODJet xAODJet/*.h xAODJet/*.icc xAODJet/versions/*.h xAODJet/versions/*.icc - Root/*.cxx + Root/JetA*.cxx Root/JetC*.cxx Root/Jet_v*.cxx Root/xAODJetCLIDs.cxx + ${extra_srcs} PUBLIC_HEADERS xAODJet INCLUDE_DIRS ${ROOT_INCLUDE_DIRS} LINK_LIBRARIES ${ROOT_LIBRARIES} AthContainers AthLinks diff --git a/Event/xAOD/xAODJet/Root/JetConstituentVector.cxx b/Event/xAOD/xAODJet/Root/JetConstituentVector.cxx index 1da848710eec8189b6549739a341f8b547f5c791..365d81947388e609ca26bdf8bc30660b590fe84f 100644 --- a/Event/xAOD/xAODJet/Root/JetConstituentVector.cxx +++ b/Event/xAOD/xAODJet/Root/JetConstituentVector.cxx @@ -1,13 +1,13 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #include <cmath> #include "xAODJet/JetConstituentVector.h" #include "xAODCaloEvent/CaloCluster.h" -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) #include "xAODPFlow/PFO.h" -#endif //SIMULATIONBASE +#endif // not SIMULATIONBASE or GENERATIONBASE namespace xAOD { @@ -47,14 +47,14 @@ namespace xAOD { } return; } -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) case Type::ParticleFlow: { const xAOD::PFO *pfo = dynamic_cast<const xAOD::PFO*>(part); if(pfo->ptEM()!=0) constit.SetCoordinates( pfo->ptEM(), pfo->etaEM(), pfo->phiEM(), pfo->mEM() ); else constit.SetCoordinates( 0, 1, 1, 0 ); // To avoid Warnings from root. return; } -#endif //SIMULATIONBASE +#endif // not SIMULATIONBASE or GENERATIONBASE default: break;// fall back on default kinematics } diff --git a/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v1.cxx b/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v1.cxx index 1bad4fca6c6ac55433172fe1d98d9ead324b6be7..a2f0a52422aab82618011bf2b01d932158d99952 100644 --- a/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v1.cxx +++ b/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v1.cxx @@ -1,9 +1,7 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - -#ifndef SIMULATIONBASE // Local include(s): #include "xAODJet/versions/JetTrigAuxContainer_v1.h" @@ -19,8 +17,6 @@ namespace xAOD { AUX_VARIABLE( eta ); AUX_VARIABLE( phi ); AUX_VARIABLE( m ); - } } // namespace xAOD -#endif //SIMULATIONBASE diff --git a/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v2.cxx b/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v2.cxx index d531a76bd990ad25e2fa91f470c079c3a255f7f0..9e200b5a5248678d4a88ce3a4a61294c352437f0 100644 --- a/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v2.cxx +++ b/Event/xAOD/xAODJet/Root/JetTrigAuxContainer_v2.cxx @@ -1,9 +1,7 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ - -#ifndef SIMULATIONBASE // Local include(s): #include "xAODJet/versions/JetTrigAuxContainer_v2.h" @@ -20,8 +18,6 @@ namespace xAOD { AUX_VARIABLE( eta ); AUX_VARIABLE( phi ); AUX_VARIABLE( m ); - } } // namespace xAOD -#endif //SIMULATIONBASE diff --git a/Event/xAOD/xAODJet/Root/Jet_v1.cxx b/Event/xAOD/xAODJet/Root/Jet_v1.cxx index 3b1b6b5a311870bedf2d4579aea0021015a49a01..ead3642b0ced419be8a83ad0641205fd0e62a9ac 100644 --- a/Event/xAOD/xAODJet/Root/Jet_v1.cxx +++ b/Event/xAOD/xAODJet/Root/Jet_v1.cxx @@ -259,7 +259,7 @@ namespace xAOD { void Jet_v1::setInputType(JetInput::Type t) {inputAcc(*this)=t;} -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) static const SG::AuxElement::Accessor< ElementLink< BTaggingContainer > > btagAcc1( "btagging" ); static const SG::AuxElement::Accessor< ElementLink< BTaggingContainer > > @@ -291,7 +291,7 @@ namespace xAOD { btagAcc2( *this ) = el; return; } -#endif //SIMULATIONBASE +#endif // not SIMULATIONBASE or GENERATIONBASE // void Jet_v1::toPersistent() { // No longer needed, as this is done by the POOL converter for the aux container diff --git a/Event/xAOD/xAODJet/Root/xAODJetCLIDs.cxx b/Event/xAOD/xAODJet/Root/xAODJetCLIDs.cxx index f8daf6b0d651b7a3c0bb624e02b5f6a2280a782c..f67325ee5e8b636106582461e97b309d7a9fcba0 100644 --- a/Event/xAOD/xAODJet/Root/xAODJetCLIDs.cxx +++ b/Event/xAOD/xAODJet/Root/xAODJetCLIDs.cxx @@ -1,10 +1,10 @@ /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ //simple includes to force the CLASS_DEF to be encountered during compile #include "xAODJet/JetAuxContainer.h" #include "xAODJet/JetContainer.h" -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) #include "xAODJet/JetTrigAuxContainer.h" -#endif //SIMULATIONBASE +#endif // not SIMULATIONBASE or GENERATIONBASE diff --git a/Event/xAOD/xAODJet/xAODJet/JetTrigAuxContainer.h b/Event/xAOD/xAODJet/xAODJet/JetTrigAuxContainer.h index 59ccbd1323a18be6fd1d42751d5abd20a377f1e2..06cf64970951f40760d318679e4b93ae81afbc71 100644 --- a/Event/xAOD/xAODJet/xAODJet/JetTrigAuxContainer.h +++ b/Event/xAOD/xAODJet/xAODJet/JetTrigAuxContainer.h @@ -1,12 +1,12 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef XAODJET_JETTRIGAUXCONTAINER_H #define XAODJET_JETTRIGAUXCONTAINER_H -#ifndef SIMULATIONBASE + // Local include(s): #include "xAODJet/versions/JetTrigAuxContainer_v2.h" @@ -25,5 +25,4 @@ namespace xAOD { #include "xAODCore/CLASS_DEF.h" CLASS_DEF( xAOD::JetTrigAuxContainer, 1285854532, 1 ) -#endif //SIMULATIONBASE -#endif // XAODJET_JETAUXCONTAINER_H +#endif // XAODJET_JETTRIGAUXCONTAINER_H diff --git a/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v1.h b/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v1.h index a4d214c955184d3a499ed01f7722ea71c7dcecb5..e0ee21750e2dd9a342ceaf9bf3429532023fc38c 100644 --- a/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v1.h +++ b/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v1.h @@ -1,13 +1,11 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: JetTrigAuxContainer_v1.h 576027 2013-12-17 21:15:51Z delsart $ #ifndef XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V1_H #define XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V1_H -#ifndef SIMULATIONBASE // System include(s): #include <vector> @@ -61,6 +59,5 @@ namespace xAOD { // Declare the inheritance of the class: #include "xAODCore/BaseInfo.h" SG_BASE( xAOD::JetTrigAuxContainer_v1, xAOD::ByteStreamAuxContainer_v1 ); -#endif -#endif // XAODJET_VERSIONS_JETAUXCONTAINER_V1_H +#endif // XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V1_H diff --git a/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v2.h b/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v2.h index adb04d5c4fca0a69c87aa202d37e6735446ffb9f..dc506958e22336706077554f2d4aa65da95f2701 100644 --- a/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v2.h +++ b/Event/xAOD/xAODJet/xAODJet/versions/JetTrigAuxContainer_v2.h @@ -1,13 +1,11 @@ +// Dear emacs, this is -*- c++ -*- + /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// Dear emacs, this is -*- c++ -*- - -// $Id: JetTrigAuxContainer_v2.h 2017-02-12 16:52 sschramm $ #ifndef XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V2_H #define XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V2_H -#ifndef SIMULATIONBASE // System include(s): #include <vector> @@ -62,6 +60,5 @@ namespace xAOD { // Declare the inheritance of the class: #include "xAODCore/BaseInfo.h" SG_BASE( xAOD::JetTrigAuxContainer_v2, xAOD::ByteStreamAuxContainer_v1 ); -#endif -#endif // XAODJET_VERSIONS_JETAUXCONTAINER_V2_H +#endif // XAODJET_VERSIONS_JETTRIGAUXCONTAINER_V2_H diff --git a/Event/xAOD/xAODJet/xAODJet/versions/Jet_v1.h b/Event/xAOD/xAODJet/xAODJet/versions/Jet_v1.h index 84966c31aacf23d52b3307f45d6c680ee39de173..fff4300feddde92ad46c63b18a37f1bf70c43b91 100644 --- a/Event/xAOD/xAODJet/xAODJet/versions/Jet_v1.h +++ b/Event/xAOD/xAODJet/xAODJet/versions/Jet_v1.h @@ -1,7 +1,7 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2019 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ #ifndef XAODJET_VERSIONS_JET_V1_H @@ -16,9 +16,9 @@ // xAOD include(s): #include "xAODBase/IParticle.h" #include "xAODBase/IParticleContainer.h" -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) #include "xAODBTagging/BTaggingContainer.h" -#endif //SIMULATIONBASE +#endif // not SIMULATIONBASE or GENERATIONBASE // Local include(s): //#include "xAODJet/JetConstituentIterator.h" @@ -236,14 +236,14 @@ namespace xAOD { /// Set number by enum template<class T> void setAttribute( AttributeID type, const T& value ); -#ifndef SIMULATIONBASE +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) /// Access to the associated btagging object const BTagging* btagging() const; /// Access to the associated btagging object const ElementLink< BTaggingContainer >& btaggingLink() const; /// Access to btagging objects void setBTaggingLink( const ElementLink< BTaggingContainer>& el ); -#endif +#endif // not SIMULATIONBASE or GENERATIONBASE /// @} //////////////////////////////////////////////////////// diff --git a/Event/xAOD/xAODJet/xAODJet/xAODJetDict.h b/Event/xAOD/xAODJet/xAODJet/xAODJetDict.h index a98758c97bc1b9c5d3ce6da8c0dc582835252f37..856d28909d73c2e8ec51fbd4aaab6e524484e2a2 100644 --- a/Event/xAOD/xAODJet/xAODJet/xAODJetDict.h +++ b/Event/xAOD/xAODJet/xAODJet/xAODJetDict.h @@ -1,10 +1,9 @@ // Dear emacs, this is -*- c++ -*- /* - Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration + Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration */ -// $Id: xAODJetDict.h 796773 2017-02-12 19:01:20Z sschramm $ #ifndef XAODJET_XAODJETDICT_H #define XAODJET_XAODJETDICT_H @@ -24,8 +23,10 @@ #include "xAODJet/JetContainer.h" #include "xAODJet/versions/JetContainer_v1.h" #include "xAODJet/versions/JetAuxContainer_v1.h" +#if !defined(SIMULATIONBASE) and !defined(GENERATIONBASE) #include "xAODJet/versions/JetTrigAuxContainer_v1.h" #include "xAODJet/versions/JetTrigAuxContainer_v2.h" +#endif // not SIMULATIONBASE or GENERATIONBASE #include "xAODJet/versions/Jet_v1.h" #include "xAODJet/JetTypes.h" diff --git a/Projects/AnalysisBase/externals.txt b/Projects/AnalysisBase/externals.txt index 93215a7073946aed6ae3c1cd0b8c08acfba869d9..c9297de1c3c2569469916fb3a339758d4f5542b6 100644 --- a/Projects/AnalysisBase/externals.txt +++ b/Projects/AnalysisBase/externals.txt @@ -6,4 +6,4 @@ # forbidden. # The version of atlas/atlasexternals to use: -AnalysisBaseExternalsVersion = 2.0.56 +AnalysisBaseExternalsVersion = 2.0.57 diff --git a/Projects/AthDataQuality/externals.txt b/Projects/AthDataQuality/externals.txt index 3fae03167e2eec37abff03bd6b7a1a5bc15397f7..600901a2292bfb982e7e2bc4cd5d9b9ac958c55f 100644 --- a/Projects/AthDataQuality/externals.txt +++ b/Projects/AthDataQuality/externals.txt @@ -5,4 +5,4 @@ # an "origin/" prefix before it. For tags however this is explicitly # forbidden. -AtlasExternalsVersion = 2.0.56 +AtlasExternalsVersion = 2.0.57 diff --git a/Projects/AthGeneration/CMakeLists.txt b/Projects/AthGeneration/CMakeLists.txt new file mode 100644 index 0000000000000000000000000000000000000000..f538c30b54c1f8aa7222246f025c36f1bd222b46 --- /dev/null +++ b/Projects/AthGeneration/CMakeLists.txt @@ -0,0 +1,95 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration + +# Set up the project. +cmake_minimum_required( VERSION 3.6 ) +file( READ ${CMAKE_SOURCE_DIR}/version.txt _version ) +string( STRIP ${_version} _version ) +project( AthGeneration VERSION ${_version} LANGUAGES C CXX Fortran ) +unset( _version ) + +# Configure flake8: +set( ATLAS_FLAKE8 "flake8_atlas --select ATL,F,E7,E9,W6 --enable-extension ATL902 --extend-ignore E701,E702,E741" + CACHE STRING "Default flake8 command" ) + +set( ATLAS_PYTHON_CHECKER "${ATLAS_FLAKE8} --filterFiles AthenaConfiguration" + CACHE STRING "Python checker command to run during Python module compilation" ) + +# Find the ATLAS CMake code: +find_package( AtlasCMake QUIET ) + +# Find the base project(s): +find_package( AthGenerationExternals REQUIRED ) +find_package( Gaudi REQUIRED ) + +# Additional externals needed for the build/runtime: +find_package( Xrootd ) +find_package( GSL ) +find_package( Davix ) +find_package( PNG ) +find_package( BLAS ) +find_package( AIDA ) + +# Set up the compilation option(s) for AthGeneration. +add_definitions( -DGENERATIONBASE ) +set( GENERATIONBASE TRUE CACHE BOOL + "Flag specifying that this is a simulation release build" ) + +# Load all the files from the externals/ subdirectory: +file( GLOB _externals "${CMAKE_CURRENT_SOURCE_DIR}/externals/*.cmake" ) +foreach( _external ${_externals} ) + include( ${_external} ) + get_filename_component( _extName ${_external} NAME_WE ) + string( TOUPPER ${_extName} _extNameUpper ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) + unset( _extName ) + unset( _extNameUpper ) +endforeach() +unset( _external ) +unset( _externals ) + +# Disable the usage of the --no-undefined linker flag: +atlas_disable_no_undefined() + +# Set up CTest: +atlas_ctest_setup() + +# Set up the "ATLAS project". +atlas_project( USE AthGenerationExternals ${AthGenerationExternals_VERSION} + PROJECT_ROOT ${CMAKE_SOURCE_DIR}/../../ ) + +# Install the external configurations: +install( DIRECTORY ${CMAKE_SOURCE_DIR}/externals + DESTINATION ${CMAKE_INSTALL_CMAKEDIR} USE_SOURCE_PERMISSIONS ) + +# Generate the environment setup for the externals, to be used during the build: +lcg_generate_env( SH_FILE ${CMAKE_BINARY_DIR}/${ATLAS_PLATFORM}/env_setup.sh ) + +# Generate replacement rules for the installed paths: +set( _replacements ) +if( NOT "$ENV{NICOS_PROJECT_HOME}" STREQUAL "" ) + get_filename_component( _buildDir $ENV{NICOS_PROJECT_HOME} PATH ) + list( APPEND _replacements ${_buildDir} "\${AthGeneration_DIR}/../../../.." ) +endif() +if( NOT "$ENV{TDAQ_RELEASE_BASE}" STREQUAL "" ) + list( APPEND _replacements $ENV{TDAQ_RELEASE_BASE} + "\${TDAQ_RELEASE_BASE}" ) +endif() + +# Now generate and install the installed setup files: +lcg_generate_env( SH_FILE ${CMAKE_BINARY_DIR}/env_setup_install.sh + REPLACE ${_replacements} ) +install( FILES ${CMAKE_BINARY_DIR}/env_setup_install.sh + DESTINATION . RENAME env_setup.sh ) + +# Configure and install the post-configuration file: +string( REPLACE "$ENV{TDAQ_RELEASE_BASE}" "\$ENV{TDAQ_RELEASE_BASE}" + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) +string( REPLACE "${TDAQ-COMMON_VERSION}" "\${TDAQ-COMMON_VERSION}" + TDAQ-COMMON_ATROOT "${TDAQ-COMMON_ATROOT}" ) +configure_file( ${CMAKE_SOURCE_DIR}/cmake/PostConfig.cmake.in + ${CMAKE_BINARY_DIR}/PostConfig.cmake @ONLY ) +install( FILES ${CMAKE_BINARY_DIR}/PostConfig.cmake + DESTINATION ${CMAKE_INSTALL_CMAKEDIR} ) + +# Package up the release using CPack: +atlas_cpack_setup() diff --git a/Projects/AthGeneration/README.md b/Projects/AthGeneration/README.md new file mode 100644 index 0000000000000000000000000000000000000000..bbd38eeb97cd5032f54983388e4721276fb308bf --- /dev/null +++ b/Projects/AthGeneration/README.md @@ -0,0 +1,44 @@ +The Full ATLAS Offline Software Project +======================================= + +This is the configuration for building the full offline software from the +repository. + +Build Instructions +------------------ + +To build the externals necessary for building this project itself, use the + + build_externals.sh + +script. It will build all the externals necessary for this project into a +subdirectory of the directory holding this repository, called `build`. + +The sources of the externals will be checked out under `build/src`, the +build of the projects will commence under `build/build`, and the results of +the build will be installed under `build/install`. + +RPMs created from the externals are copied under `build/` by the script. + +Once the externals have finished building, you can initiate the full build +of the project against these newly built externals by executing the + + build.sh + +script. It uses the same directory layout inside the `build` directory as +was used for the externals. + +Custom Builds +------------- + +Of course it is perfectly allowed to set up a build by hand, not using the +`build.sh` script as well. In that case you have to make sure to have a +functional version of AthGenerationExternals set up in your environment, and point +the `GAUDI_ROOT` environment variable against the Gaudi version that you +want to use for the build. + +You will also need to set the `TDAQ_RELEASE_BASE` environment variable for +the build to be successful. The simplest way of doing this is to use the +helper script: + + Build/AtlasBuildScripts/TDAQ_RELEASE_BASE.sh diff --git a/Projects/AthGeneration/build.sh b/Projects/AthGeneration/build.sh new file mode 100755 index 0000000000000000000000000000000000000000..e793b9959e7618dfb8b0a8e569d448d117bef7aa --- /dev/null +++ b/Projects/AthGeneration/build.sh @@ -0,0 +1,203 @@ +#!/bin/bash +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Script for building the release on top of externals built using one of the +# scripts in this directory. +# +_time_() { local c="time -p " ; while test "X$1" != "X" ; do c+=" \"$1\"" ; shift; done; ( eval "$c" ) 2>&1 | sed "s,^real[[:space:]],time::${c}:: real ," ; } + +# Function printing the usage information for the script +usage() { + echo "Usage: build.sh [-t build type] [-b build dir] [-c] [-m] [-i] [-p] [-a] [-x opt] [-N]" + echo " -c: Execute CMake step" + echo " -m: Execute make step" + echo " -i: Execute install step" + echo " -p: Execute CPack step" + echo " -a: Abort on error" + echo " -x: Extra configuration argument(s) for CMake" + echo " -N: Use Ninja" + + echo "If none of the c, m, i or p options are set then the script will do" + echo "*all* steps. Otherwise only the enabled steps are run - it's your" + echo "reponsibility to ensure that precusors are in good shape" +} + +# Parse the command line arguments: +BUILDDIR="" +BUILDTYPE="RelWithDebInfo" +EXE_CMAKE="" +EXE_MAKE="" +EXE_INSTALL="" +EXE_CPACK="" +NIGHTLY=true +EXTRACMAKE=() +BUILDTOOLTYPE="" +BUILDTOOL="make -k" +INSTALLRULE="install/fast" +while getopts ":t:b:hcmipax:N" opt; do + case $opt in + t) + BUILDTYPE=$OPTARG + ;; + b) + BUILDDIR=$OPTARG + ;; + c) + EXE_CMAKE="1" + ;; + m) + EXE_MAKE="1" + ;; + i) + EXE_INSTALL="1" + ;; + p) + EXE_CPACK="1" + ;; + a) + NIGHTLY=false + ;; + x) + EXTRACMAKE+=($OPTARG) + ;; + N) + BUILDTOOL="ninja -k 0" + BUILDTOOLTYPE="-GNinja" + INSTALLRULE="install" + ;; + h) + usage + exit 0 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + usage + exit 1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + usage + exit 1 + ;; + esac +done + +# If no step was explicitly specified, turn them all on: +if [ -z "$EXE_CMAKE" -a -z "$EXE_MAKE" -a -z "$EXE_INSTALL" -a -z "$EXE_CPACK" ]; then + EXE_CMAKE="1" + EXE_MAKE="1" + EXE_INSTALL="1" + EXE_CPACK="1" +fi + +# Stop on errors from here on out: +set -e +# consider a pipe failed if ANY of the commands fails +set -o pipefail + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + scriptsdir_nightly_status=${NIGHTLY_STATUS_SCRIPTS} + test "X$scriptsdir_nightly_status" = "X" && scriptsdir_nightly_status=${scriptsdir}/nightly_status + test -x $scriptsdir_nightly_status/status_on_exit.sh && trap $scriptsdir_nightly_status/status_on_exit.sh EXIT + } +} + +# Source in our environment +AthGenerationSrcDir=$(dirname ${BASH_SOURCE[0]}) + +# The directory holding the helper scripts: +scriptsdir=${AthGenerationSrcDir}/../../Build/AtlasBuildScripts +scriptsdir=$(cd ${scriptsdir}; pwd) + +if [ -z "$BUILDDIR" ]; then + BUILDDIR=${AthGenerationSrcDir}/../../../build +fi +mkdir -p ${BUILDDIR} +BUILDDIR=$(cd ${BUILDDIR} && pwd) +source $AthGenerationSrcDir/build_env.sh -b $BUILDDIR >& ${BUILDDIR}/build_env.log +cat ${BUILDDIR}/build_env.log + +# create the actual build directory +mkdir -p ${BUILDDIR}/build/AthGeneration +cd ${BUILDDIR}/build/AthGeneration + +# CMake: +if [ -n "$EXE_CMAKE" ]; then + # Remove the CMakeCache.txt file, to force CMake to find externals + # from scratch in an incremental build. + rm -f CMakeCache.txt + # Now run the actual CMake configuration: + { _time_ cmake ${BUILDTOOLTYPE} -DCMAKE_BUILD_TYPE:STRING=${BUILDTYPE} \ + ${EXTRACMAKE[@]} \ + -DCTEST_USE_LAUNCHERS:BOOL=TRUE \ + ${AthGenerationSrcDir}; } 2>&1 | tee cmake_config.log +fi + +#log analyzer never affects return status in the parent shell: +{ + test "X${NIGHTLY_STATUS}" != "X" && { + branch=$(basename $(cd ${BUILDDIR}/.. ; pwd)) #FIXME: should be taken from env. + timestamp_tmp=` basename ${BUILDDIR}/../.@@__* 2>/dev/null | sed 's,^\.,,' ` + test "X$timestamp_tmp" != "X" || { + timestamp_tmp=@@__`date "+%Y-%m-%dT%H%M"`__@@ #to be used until the final stamp from ReleaseData is available + touch ${BUILDDIR}/../.${timestamp_tmp} + } + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGeneration ${BUILDDIR}/build/AthGeneration/cmake_config.log + ) + } || true +} + +# for nightly builds we want to get as far as we can +if [ "$NIGHTLY" = true ]; then + # At this point stop worrying about errors: + set +e +fi + +# make: +if [ -n "$EXE_MAKE" ]; then + # Forcibly remove the merged CLID file from the previous build, to + # avoid issues with some library possibly changing the name/CLID + # of something during the build. Note that ${platform} is coming from + # the build_env.sh script. + rm -f ${platform}/share/clid.db + # Build the project. + { _time_ ${BUILDTOOL}; } 2>&1 | tee cmake_build.log +fi + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGeneration ${BUILDDIR}/build/AthGeneration/cmake_build.log + ) + } || true +} + +# Install the results: +if [ -n "$EXE_INSTALL" ]; then + { DESTDIR=${BUILDDIR}/install _time_ ${BUILDTOOL} ${INSTALLRULE}; } \ + 2>&1 | tee cmake_install.log +fi +#^^^ do we need to analyze local install logs? + +# Build an RPM for the release: +if [ -n "$EXE_CPACK" ]; then + { _time_ cpack; } 2>&1 | tee cmake_cpack.log + if [ "$BUILDTYPE" = "RelWithDebInfo" ]; then + { _time_ cpack --config CPackDbgRPMConfig.cmake; } 2>&1 | tee -a cmake_cpack.log + fi + cp AthGeneration*.rpm ${BUILDDIR}/ +fi + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + for project in `ls ${BUILDDIR}/build 2>/dev/null` ; do + ${scriptsdir_nightly_status}/cmake_cpack_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" "${project}" ${BUILDDIR}/build/${project}/cmake_cpack.log + done + ${scriptsdir_nightly_status}/collect_nightly_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" "$BUILDDIR" + ) + } || true +} diff --git a/Projects/AthGeneration/build_env.sh b/Projects/AthGeneration/build_env.sh new file mode 100644 index 0000000000000000000000000000000000000000..7327033c52343477a670d339552d790a7def97e6 --- /dev/null +++ b/Projects/AthGeneration/build_env.sh @@ -0,0 +1,108 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# This script sets up the build enironment for an AthGeneration +# build, on top of a built set of externals (including Gaudi) +# +# This script is kept separate from the build.sh +# wrapper so it can be sourced separately from it when +# clients want to manage their own build and just want +# to setup the build environment + +env_usage() { + echo "Usage: build_env.sh [-b build dir]" +} + +# This function actually sets up the environment for us +# (factorise it here in case it needs skipped) +env_setup() { + startdir=$(pwd) + # As this script can be sourced we need to support zsh and + # possibly other Bourne shells + if [ "x${BASH_SOURCE[0]}" = "x" ]; then + # This trick should do the right thing under ZSH: + thisdir=$(dirname `print -P %x`) + if [ $? != 0 ]; then + echo "ERROR: This script must be sourced from BASH or ZSH" + return 1 + fi + else + # The BASH solution is a bit more straight forward: + thisdir=$(dirname ${BASH_SOURCE[0]}) + fi + AthGenerationSrcDir=$(cd ${thisdir};pwd) + + # The directory holding the helper scripts: + scriptsdir=${AthGenerationSrcDir}/../../Build/AtlasBuildScripts + + # Go to the main directory of the repository: + cd ${AthGenerationSrcDir}/../.. + + # Check if the user specified any source/build directories: + if [ "$BUILDDIR" = "" ]; then + BUILDDIR=${AthGenerationSrcDir}/../../../build + fi + + # Get the version of AthGeneration for the build. + version=`cat ${AthGenerationSrcDir}/version.txt` + + # Set up the environment for the build: + export NICOS_PROJECT_HOME=$(cd ${BUILDDIR}/install;pwd)/AthGeneration + + # Set up the environment variables for finding LCG and the TDAQ externals: + source ${scriptsdir}/LCG_RELEASE_BASE.sh + + # Set up the AthGenerationExternals project: + extDir=${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea + if [ ! -d ${extDir} ]; then + echo "Didn't find the AthGenerationExternals project under ${extDir}" + echo "(Hopefully this is intentional and you have done e.g. asetup AthGenerationExternals,master,latest)" + else + echo "Setting up AthGenerationExternals from: ${extDir}" + source ${extDir}/*/setup.sh + fi + + # Point to Gaudi: + # Get platform from the GAUDI build - we're assuming here that there's only one platform installed. + if [ -z "${GAUDI_ROOT+1}" ]; then + platform=$(cd ${BUILDDIR}/install/GAUDI/${version}/InstallArea/;ls) + export GAUDI_ROOT=${BUILDDIR}/install/GAUDI/${version}/InstallArea/${platform} + fi + echo "Taking Gaudi from: ${GAUDI_ROOT}" + + cd $startdir +} + +# we need to reset the option index as we are sourcing this script +# http://stackoverflow.com/questions/23581368/bug-in-parsing-args-with-getopts-in-bash +OPTIND=1 + +# Parse the command line arguments: +BUILDDIR="" +while getopts "b:h" opt; do + case $opt in + b) + BUILDDIR=$OPTARG + ;; + h) + env_usage + ABORT=1 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + env_usage + ABORT=1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + env_usage + ABORT=1 + ;; + esac +done + +# Put a big wrapper around bad argument case, because +# a sourced script should not call "exit". This is quite +# annoying... +if [ -z "$ABORT" ]; then + env_setup +fi diff --git a/Projects/AthGeneration/build_externals.sh b/Projects/AthGeneration/build_externals.sh new file mode 100755 index 0000000000000000000000000000000000000000..99cf4d58cf4f15fd2faa785bb4275514c850e745 --- /dev/null +++ b/Projects/AthGeneration/build_externals.sh @@ -0,0 +1,202 @@ +#!/bin/bash +# +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# Script building all the externals necessary for the nightly build. +# + +# Function printing the usage information for the script +usage() { + echo "Usage: build_externals.sh [-t build_type] [-b build_dir] [-f] [-c] [-x]" + echo " -f: Force rebuild of externals from scratch, otherwise if script" + echo " finds an external build present it will only do an incremental" + echo " build" + echo " -c: Build the externals for the continuous integration (CI) system," + echo " skipping the build of the externals RPMs." + echo " -x: Extra cmake argument(s) to provide for the build(configuration)" + echo " of all externals needed by AthGeneration." + echo "If a build_dir is not given the default is '../build'" + echo "relative to the athena checkout" +} + +# Parse the command line arguments: +BUILDDIR="" +BUILDTYPE="RelWithDebInfo" +FORCE="" +CI="" +EXTRACMAKE=(-DLCG_VERSION_NUMBER=96 -DLCG_VERSION_POSTFIX="") +while getopts ":t:b:x:fch" opt; do + case $opt in + t) + BUILDTYPE=$OPTARG + ;; + b) + BUILDDIR=$OPTARG + ;; + f) + FORCE="1" + ;; + c) + CI="1" + ;; + x) + EXTRACMAKE+=($OPTARG) + ;; + h) + usage + exit 0 + ;; + :) + echo "Argument -$OPTARG requires a parameter!" + usage + exit 1 + ;; + ?) + echo "Unknown argument: -$OPTARG" + usage + exit 1 + ;; + esac +done + +# Only stop on errors if we are in the CI. Otherwise just count them. +if [ "$CI" = "1" ]; then + set -e + set -o pipefail +fi +ERROR_COUNT=0 + +# We are in BASH, get the path of this script in a simple way: +thisdir=$(dirname ${BASH_SOURCE[0]}) +thisdir=$(cd ${thisdir};pwd) + +# Go to the main directory of the repository: +cd ${thisdir}/../.. + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + scriptsdir_nightly_status=${NIGHTLY_STATUS_SCRIPTS} + test "X$scriptsdir_nightly_status" = "X" && scriptsdir_nightly_status=${scriptsdir}/nightly_status + test -x $scriptsdir_nightly_status/externals_status_on_exit.sh && trap $scriptsdir_nightly_status/externals_status_on_exit.sh EXIT + } +} + +# Check if the user specified any source/build directories: +if [ "$BUILDDIR" = "" ]; then + BUILDDIR=${thisdir}/../../../build +fi +mkdir -p ${BUILDDIR} +BUILDDIR=$(cd $BUILDDIR; pwd) + +if [ "$FORCE" = "1" ]; then + echo "Force deleting existing build area..." + rm -fr ${BUILDDIR}/install/AthGenerationExternals ${BUILDDIR}/install/GAUDI + rm -fr ${BUILDDIR}/src/AthGenerationExternals ${BUILDDIR}/src/GAUDI + rm -fr ${BUILDDIR}/build/AthGenerationExternals ${BUILDDIR}/build/GAUDI +fi + +# Create some directories: +mkdir -p ${BUILDDIR}/{src,install} + +# Get the version of AthGeneration for the build. +version=`cat ${thisdir}/version.txt` + +# The directory holding the helper scripts: +scriptsdir=${thisdir}/../../Build/AtlasBuildScripts +scriptsdir=$(cd ${scriptsdir}; pwd) + +# Set the environment variable for finding LCG releases: +source ${scriptsdir}/LCG_RELEASE_BASE.sh + +# Flag for triggering the build of RPMs for the externals: +RPMOPTIONS="-r ${BUILDDIR}" +if [ "$CI" = "1" ]; then + RPMOPTIONS= +fi + +# Read in the tag/branch to use for AthGenerationExternals: +AthGenerationExternalsVersion=$(awk '/^AthGenerationExternalsVersion/{print $3}' ${thisdir}/externals.txt) + +# Check out AthGenerationExternals from the right branch/tag: +${scriptsdir}/checkout_atlasexternals.sh \ + -t ${AthGenerationExternalsVersion} \ + -s ${BUILDDIR}/src/AthGenerationExternals 2>&1 | \ + tee ${BUILDDIR}/src/checkout.AthGenerationExternals.log + +# log analyzer never affects return status in the parent shell: +{ + test "X${NIGHTLY_STATUS}" != "X" && { + branch=$(basename $(cd .. ; pwd)) #FIXME: should be taken from env. + timestamp_tmp=` basename ${BUILDDIR}/../.@@__* 2>/dev/null | sed 's,^\.,,' ` #to be used until the final stamp from ReleaseData is available + test "X$timestamp_tmp" != "X" || { + timestamp_tmp=@@__`date "+%Y-%m-%dT%H%M"`__@@ + touch ${BUILDDIR}/../.${timestamp_tmp} + } + (set +e + ${scriptsdir_nightly_status}/checkout_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/src/checkout.AthGenerationExternals.log + ) + } || true +} + +## Build AthGenerationExternals: +${scriptsdir}/build_atlasexternals.sh \ + -s ${BUILDDIR}/src/AthGenerationExternals \ + -b ${BUILDDIR}/build/AthGenerationExternals \ + -i ${BUILDDIR}/install \ + -p AthGenerationExternals ${RPMOPTIONS} -t ${BUILDTYPE} \ + -v ${version} \ + ${EXTRACMAKE[@]/#/-x } || ((ERROR_COUNT++)) + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/build/AthGenerationExternals/cmake_config.log + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" AthGenerationExternals ${BUILDDIR}/build/AthGenerationExternals/cmake_build.log + ) + } || true +} + +# Get the "platform name" from the directory created by the AthGenerationExternals +# build: +platform=$(cd ${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea;ls) + +# Read in the tag/branch to use for Gaudi: +GaudiVersion=$(awk '/^GaudiVersion/{print $3}' ${thisdir}/externals.txt) + +# Check out Gaudi from the right branch/tag: +${scriptsdir}/checkout_Gaudi.sh \ + -t ${GaudiVersion} \ + -s ${BUILDDIR}/src/GAUDI 2>&1 | tee ${BUILDDIR}/src/checkout.GAUDI.log + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/checkout_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/src/checkout.GAUDI.log + ) + } || true +} + +# Build Gaudi: +${scriptsdir}/build_Gaudi.sh \ + -s ${BUILDDIR}/src/GAUDI \ + -b ${BUILDDIR}/build/GAUDI \ + -i ${BUILDDIR}/install \ + -e ${BUILDDIR}/install/AthGenerationExternals/${version}/InstallArea/${platform} \ + -v ${version} \ + -p AthGenerationExternals -f ${platform} ${RPMOPTIONS} -t ${BUILDTYPE} \ + ${EXTRACMAKE[@]/#/-x } || ((ERROR_COUNT++)) + +{ + test "X${NIGHTLY_STATUS}" != "X" && { + (set +e + ${scriptsdir_nightly_status}/cmake_config_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/build/GAUDI/cmake_config.log + ${scriptsdir_nightly_status}/cmake_build_status.sh "$branch" "$BINARY_TAG" "$timestamp_tmp" GAUDI ${BUILDDIR}/build/GAUDI/cmake_build.log + ) + } || true +} + +# Exit with the error count taken into account. +if [ ${ERROR_COUNT} -ne 0 ]; then + echo "AthGeneration externals build encountered ${ERROR_COUNT} error(s)" +fi +exit ${ERROR_COUNT} diff --git a/Projects/AthGeneration/cmake/PostConfig.cmake.in b/Projects/AthGeneration/cmake/PostConfig.cmake.in new file mode 100644 index 0000000000000000000000000000000000000000..519cd3345d72bf4a0be22e7dcf6641d8bcfaac17 --- /dev/null +++ b/Projects/AthGeneration/cmake/PostConfig.cmake.in @@ -0,0 +1,30 @@ +# Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration +# +# File taking care of pointing the downstream projects at the right +# version of the externals. +# + +# Find Gaudi: +find_package( Gaudi REQUIRED ) + +# Set up the compilation option(s) for AthGeneration. +add_definitions( -DGENERATIONBASE ) +set( GENERATIONBASE TRUE CACHE BOOL + "Flag specifying that this is a generation release build" ) + +# Load all the files from the externals/ subdirectory: +get_filename_component( _thisdir ${CMAKE_CURRENT_LIST_FILE} PATH ) +file( GLOB _externals "${_thisdir}/externals/*.cmake" ) +unset( _thisdir ) +foreach( _external ${_externals} ) + include( ${_external} ) + get_filename_component( _extName ${_external} NAME_WE ) + string( TOUPPER ${_extName} _extNameUpper ) + if( NOT AtlasExternals_FIND_QUIETLY ) + message( STATUS "Taking ${_extName} from: ${${_extNameUpper}_LCGROOT}" ) + endif() + unset( _extName ) + unset( _extNameUpper ) +endforeach() +unset( _external ) +unset( _externals ) diff --git a/Projects/AthGeneration/cmake/README.txt.in b/Projects/AthGeneration/cmake/README.txt.in new file mode 100644 index 0000000000000000000000000000000000000000..d1a2ff448e2478f1cd157ebff952dc6d26318634 --- /dev/null +++ b/Projects/AthGeneration/cmake/README.txt.in @@ -0,0 +1,5 @@ + + AthGeneration - @CMAKE_PROJECT_VERSION@ + +This package provides version @CMAKE_PROJECT_VERSION@ of the ATLAS +event generation software. diff --git a/Projects/AthGeneration/externals.txt b/Projects/AthGeneration/externals.txt new file mode 100644 index 0000000000000000000000000000000000000000..1d5585722185f7bdef2f1cf1ac4660788536a060 --- /dev/null +++ b/Projects/AthGeneration/externals.txt @@ -0,0 +1,12 @@ +# Versions of the various externals to build before starting the build of +# this project, when doing a full stack nightly build. +# +# Remember that when specifying the name of a branch, you *must* put +# an "origin/" prefix before it. For tags however this is explicitly +# forbidden. + +# The version of atlas/atlasexternals to use: +AthGenerationExternalsVersion = 2.0.57 + +# The version of atlas/Gaudi to use: +GaudiVersion = v33r0.003 diff --git a/Projects/AthGeneration/externals/Crmc.cmake b/Projects/AthGeneration/externals/Crmc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b1a4276e809b45a7bf67c442c6ef82822e361ef3 --- /dev/null +++ b/Projects/AthGeneration/externals/Crmc.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Crmc to use. +# + +set( CRMC_VERSION 1.5.6 ) +set( CRMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/crmc/${CRMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/EvtGen.cmake b/Projects/AthGeneration/externals/EvtGen.cmake new file mode 100644 index 0000000000000000000000000000000000000000..5d729fa4457dd559530cf6c20db62a6974763059 --- /dev/null +++ b/Projects/AthGeneration/externals/EvtGen.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of EvtGen to use. +# + +set( EVTGEN_LCGVERSION 1.7.0 ) +set( EVTGEN_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/evtgen/${EVTGEN_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/FJContrib.cmake b/Projects/AthGeneration/externals/FJContrib.cmake new file mode 100644 index 0000000000000000000000000000000000000000..fe7873d126d03a3022a7319467800c24042224e7 --- /dev/null +++ b/Projects/AthGeneration/externals/FJContrib.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of FJContrib to use. +# + +set( FJCONTRIB_LCGVERSION 1.041 ) +set( FJCONTRIB_LCGROOT + ${LCG_RELEASE_DIR}/fjcontrib/${FJCONTRIB_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/HEPUtils.cmake b/Projects/AthGeneration/externals/HEPUtils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8344158ac506661512518cc490a53e012719bfd0 --- /dev/null +++ b/Projects/AthGeneration/externals/HEPUtils.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of HEPUtils to use. +# + +set( HEPUTILS_LCGVERSION 1.3.2 ) +set( HEPUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/heputils/${HEPUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Herwig.cmake b/Projects/AthGeneration/externals/Herwig.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b0df2d6dd7de4363b5fc6a5538ac9becea9f78ef --- /dev/null +++ b/Projects/AthGeneration/externals/Herwig.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Herwig to use. +# + +set( HERWIG_LCGVERSION 6.521.2 ) +set( HERWIG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig/${HERWIG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Herwig3.cmake b/Projects/AthGeneration/externals/Herwig3.cmake new file mode 100644 index 0000000000000000000000000000000000000000..70a428981e758362c6aad7a1f495bfb4050e899b --- /dev/null +++ b/Projects/AthGeneration/externals/Herwig3.cmake @@ -0,0 +1,9 @@ +# +# File specifying the location of Herwig3 to use. +# + +set( HERWIG3_LCGVERSION 7.2.0 ) +# Comment the following line for H7 versions <7.2 +set( HW3_VER_IS_72 1 ) +set( HERWIG3_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/herwig++/${HERWIG3_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Hydjet.cmake b/Projects/AthGeneration/externals/Hydjet.cmake new file mode 100644 index 0000000000000000000000000000000000000000..1eede1364e82dd905ae8546a36ffba6acfe11849 --- /dev/null +++ b/Projects/AthGeneration/externals/Hydjet.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Hydjet to use. +# + +set( HYDJET_LCGVERSION 1.8 ) +set( HYDJET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/hydjet/${HYDJET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Lhapdf.cmake b/Projects/AthGeneration/externals/Lhapdf.cmake new file mode 100644 index 0000000000000000000000000000000000000000..03c1e85b5a88e746d9a03c918df24ae9b84b6faa --- /dev/null +++ b/Projects/AthGeneration/externals/Lhapdf.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Lhapdf to use. +# + +set( LHAPDF_LCGVERSION 6.2.3 ) +set( LHAPDF_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/lhapdf/${LHAPDF_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/MCUtils.cmake b/Projects/AthGeneration/externals/MCUtils.cmake new file mode 100644 index 0000000000000000000000000000000000000000..f7ebb4984d7dde06c3c0be84b212779a3cf45bc4 --- /dev/null +++ b/Projects/AthGeneration/externals/MCUtils.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of MCUtils to use. +# + +set( MCUTILS_LCGVERSION 1.3.3 ) +set( MCUTILS_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/mcutils/${MCUTILS_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/MadGraph5Amc.cmake b/Projects/AthGeneration/externals/MadGraph5Amc.cmake new file mode 100644 index 0000000000000000000000000000000000000000..741f63cf942e814843d29e662f38f8a96ab607ba --- /dev/null +++ b/Projects/AthGeneration/externals/MadGraph5Amc.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of MadGraph to use. +# + +set( MADGRAPH5AMC_LCGVERSION 2.6.7.atlas3 ) +set( MADGRAPH5AMC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/madgraph5amc/${MADGRAPH5AMC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/OpenLoops.cmake b/Projects/AthGeneration/externals/OpenLoops.cmake new file mode 100644 index 0000000000000000000000000000000000000000..087811c9d70c055a7419707b2358156a3e43c4e4 --- /dev/null +++ b/Projects/AthGeneration/externals/OpenLoops.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of OpenLoops to use. +# + +set( OPENLOOPS_LCGVERSION "2.0.0" ) +set( OPENLOOPS_LCGROOT + "${LCG_RELEASE_DIR}/MCGenerators/openloops/${OPENLOOPS_LCGVERSION}/${LCG_PLATFORM}" ) \ No newline at end of file diff --git a/Projects/AthGeneration/externals/Photospp.cmake b/Projects/AthGeneration/externals/Photospp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..8e0b8c2deae56c516c33438e44d0ce2257191861 --- /dev/null +++ b/Projects/AthGeneration/externals/Photospp.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Photos++ to use. +# + +set( PHOTOSPP_LCGVERSION 3.61 ) +set( PHOTOSPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/photos++/${PHOTOSPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Pythia6.cmake b/Projects/AthGeneration/externals/Pythia6.cmake new file mode 100644 index 0000000000000000000000000000000000000000..b8810cd5b852142988e8bb706b07cfcafa1a29ca --- /dev/null +++ b/Projects/AthGeneration/externals/Pythia6.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Pythia 6 to use. +# + +set( PYTHIA6_LCGVERSION 429.2 ) +set( PYTHIA6_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia6/${PYTHIA6_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Pythia8.cmake b/Projects/AthGeneration/externals/Pythia8.cmake new file mode 100644 index 0000000000000000000000000000000000000000..378c1efff99649120c024d7951be38ff50c97979 --- /dev/null +++ b/Projects/AthGeneration/externals/Pythia8.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Pythia 8 to use. +# + +set( PYTHIA8_LCGVERSION 244 ) +set( PYTHIA8_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/pythia8/${PYTHIA8_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/README.md b/Projects/AthGeneration/externals/README.md new file mode 100644 index 0000000000000000000000000000000000000000..a0b5ddb141d9662009c64e2664c9d3d704c9ab2c --- /dev/null +++ b/Projects/AthGeneration/externals/README.md @@ -0,0 +1,20 @@ +Directory collecting external package declarations +================================================== + +This directory is used to collect simple CMake files that get included by +the CMake configuration to set up the locations of all the externals used +for the offline release build. + +Each external should be defined by its own CMake file. The files should +have a name <Bla> corresponding to the Find<Bla> module name used to find +the external in question. + +The files should define all the variables expected by the Find<Bla> modules, +which normally boil down to variables: + +`EXTNAME_LCGROOT` +`EXTNAME_LCGVERSION` + +But some modules may require other variables. In which case the `_LCGROOT` +variable should still be set, to get a nice printout from the AtlasExternals +code during the build about the location of the used external. diff --git a/Projects/AthGeneration/externals/Rivet.cmake b/Projects/AthGeneration/externals/Rivet.cmake new file mode 100644 index 0000000000000000000000000000000000000000..a2852f07772f2f45aa720a81c0049208bfbd0bab --- /dev/null +++ b/Projects/AthGeneration/externals/Rivet.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of Rivet to use. +# +set( RIVET_LCGVERSION 3.1.0 ) +set( RIVET_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/rivet/${RIVET_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Sherpa.cmake b/Projects/AthGeneration/externals/Sherpa.cmake new file mode 100644 index 0000000000000000000000000000000000000000..ba9b3421a933a8273427d55da9c62bfd131d3aab --- /dev/null +++ b/Projects/AthGeneration/externals/Sherpa.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of Sherpa to use. +# +set( SHERPA_LCGVERSION 2.2.8 ) +set( SHERPA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/sherpa/${SHERPA_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Starlight.cmake b/Projects/AthGeneration/externals/Starlight.cmake new file mode 100644 index 0000000000000000000000000000000000000000..4e0548db7bff885d4230a5cc5749fa806ded1b08 --- /dev/null +++ b/Projects/AthGeneration/externals/Starlight.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Starlight to use. +# + +set( STARLIGHT_LCGVERSION r313 ) +set( STARLIGHT_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/starlight/${STARLIGHT_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Superchic.cmake b/Projects/AthGeneration/externals/Superchic.cmake new file mode 100644 index 0000000000000000000000000000000000000000..eae6f9b47adef44b2cc964e4e127ef803de49bab --- /dev/null +++ b/Projects/AthGeneration/externals/Superchic.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Superchic 3.0 to use. +# + +set( SUPERCHIC_LCGVERSION 3.06 ) +set( SUPERCHIC_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/superchic/${SUPERCHIC_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/Tauolapp.cmake b/Projects/AthGeneration/externals/Tauolapp.cmake new file mode 100644 index 0000000000000000000000000000000000000000..375c6944f2a508160192f49f9f816570e11746cf --- /dev/null +++ b/Projects/AthGeneration/externals/Tauolapp.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of Tauola++ to use. +# + +set( TAUOLAPP_LCGVERSION 1.1.6 ) +set( TAUOLAPP_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/tauola++/${TAUOLAPP_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/ThePEG.cmake b/Projects/AthGeneration/externals/ThePEG.cmake new file mode 100644 index 0000000000000000000000000000000000000000..cf5c807c4582efe4b7084e3add47f9910fed7e3e --- /dev/null +++ b/Projects/AthGeneration/externals/ThePEG.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of ThePEG to use. +# + +set( THEPEG_LCGVERSION 2.2.0 ) +set( THEPEG_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/thepeg/${THEPEG_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/externals/VBFNLO.cmake b/Projects/AthGeneration/externals/VBFNLO.cmake new file mode 100644 index 0000000000000000000000000000000000000000..74e301bb25f7a2d90b5d5bbad9381a0df5b658da --- /dev/null +++ b/Projects/AthGeneration/externals/VBFNLO.cmake @@ -0,0 +1,7 @@ +# +# File specifying the location of VBFNLO to use. +# + +set( VBFNLO_LCGVERSION "3.0.0beta2p3" ) +set( VBFNLO_LCGROOT + "${LCG_RELEASE_DIR}/MCGenerators/vbfnlo/${VBFNLO_LCGVERSION}/${LCG_PLATFORM}" ) \ No newline at end of file diff --git a/Projects/AthGeneration/externals/YODA.cmake b/Projects/AthGeneration/externals/YODA.cmake new file mode 100644 index 0000000000000000000000000000000000000000..388f4c1e158db5510a576ca7146da09bd374e22c --- /dev/null +++ b/Projects/AthGeneration/externals/YODA.cmake @@ -0,0 +1,6 @@ +# +# File specifying the location of YODA to use. +# +set( YODA_LCGVERSION 1.8.0 ) +set( YODA_LCGROOT + ${LCG_RELEASE_DIR}/MCGenerators/yoda/${YODA_LCGVERSION}/${LCG_PLATFORM} ) diff --git a/Projects/AthGeneration/package_filters.txt b/Projects/AthGeneration/package_filters.txt new file mode 100644 index 0000000000000000000000000000000000000000..85fd11c0ba723d11d7f3d5ebc307c3e83fed1187 --- /dev/null +++ b/Projects/AthGeneration/package_filters.txt @@ -0,0 +1,184 @@ +# +# Package filtering rules for the AthGeneration project build. +# ++ AtlasTest/TestTools ++ Calorimeter/CaloConditions ++ Calorimeter/CaloGeoHelpers ++ Calorimeter/CaloDetDescr ++ Calorimeter/CaloEvent ++ Calorimeter/CaloIdentifier ++ Control/AthAllocators ++ Control/AthAnalysisBaseComps ++ Control/AthContainers ++ Control/AthContainersInterfaces ++ Control/AthContainersRoot ++ Control/AthLinks ++ Control/AthToolSupport/AsgMessaging ++ Control/AthToolSupport/AsgTools ++ Control/AthenaBaseComps ++ Control/AthenaCommon ++ Control/AthenaInterprocess ++ Control/AthenaKernel ++ Control/AthenaMP ++ Control/AthenaMPTools ++ Control/AthenaPython ++ Control/AthenaServices ++ Control/CLIDComps ++ Control/CxxUtils ++ Control/DataModelAthenaPool ++ Control/DataModelRoot ++ Control/GaudiSequencer ++ Control/IOVSvc ++ Control/Navigation ++ Control/PerformanceMonitoring/PerfMonAna ++ Control/PerformanceMonitoring/PerfMonComps ++ Control/PerformanceMonitoring/PerfMonEvent ++ Control/PerformanceMonitoring/PerfMonKernel ++ Control/PyKernel ++ Control/RngComps ++ Control/RootUtils ++ Control/SGComps ++ Control/SGMon/SGAudCore ++ Control/SGMon/SGAudSvc ++ Control/SGTools ++ Control/StoreGate ++ Control/StoreGateBindings ++ Control/xAODRootAccess ++ Control/xAODRootAccessInterfaces ++ Database/APR/CollectionBase ++ Database/APR/CollectionUtilities ++ Database/APR/FileCatalog ++ Database/APR/ImplicitCollection ++ Database/APR/POOLCore ++ Database/APR/PersistencySvc ++ Database/APR/RootStorageSvc ++ Database/APR/StorageSvc ++ Database/AthenaPOOL/AthenaPoolCnvSvc ++ Database/AthenaPOOL/AthenaPoolServices ++ Database/AthenaPOOL/AthenaPoolUtilities ++ Database/AthenaPOOL/DBDataModel ++ Database/AthenaPOOL/EventSelectorAthenaPool ++ Database/AthenaPOOL/OutputStreamAthenaPool ++ Database/AthenaPOOL/PoolSvc ++ Database/AthenaPOOL/RootConversions ++ Database/AtlasSealCLHEP ++ Database/ConnectionManagement/AtlasAuthentication ++ Database/ConnectionManagement/DBReplicaSvc ++ Database/CoraCool ++ Database/IOVDbAthenaPool ++ Database/IOVDbDataModel ++ Database/IOVDbMetaDataTools ++ Database/IOVDbSvc ++ Database/IOVDbTPCnv ++ Database/PersistentDataModel ++ Database/PersistentDataModelAthenaPool ++ Database/PersistentDataModelTPCnv ++ Database/TPTools ++ DetectorDescription/AtlasDetDescr ++ DetectorDescription/GeoModel/GeoModelInterfaces ++ DetectorDescription/GeoModel/GeoModelUtilities ++ DetectorDescription/GeoPrimitives ++ DetectorDescription/IdDict ++ DetectorDescription/IdDictParser ++ DetectorDescription/Identifier ++ Event/EventAthenaPool ++ Event/EventBookkeeperAthenaPool ++ Event/EventBookkeeperMetaData ++ Event/EventBookkeeperTPCnv ++ Event/EventBookkeeperTools ++ Event/EventContainers ++ Event/EventInfo ++ Event/EventInfoMgt ++ Event/EventKernel ++ Event/EventPTCnv ++ Event/EventPrimitives ++ Event/EventTPCnv ++ Event/FourMom ++ Event/NavFourMom ++ Event/PyDumper ++ Event/xAOD/xAODBase ++ Event/xAOD/xAODCaloEvent ++ Event/xAOD/xAODCore ++ Event/xAOD/xAODCoreAthenaPool ++ Event/xAOD/xAODCoreCnv ++ Event/xAOD/xAODCutFlow ++ Event/xAOD/xAODEventFormat ++ Event/xAOD/xAODEventInfo ++ Event/xAOD/xAODEventShape ++ Event/xAOD/xAODJet ++ Event/xAOD/xAODJetAthenaPool ++ Event/xAOD/xAODMuon ++ Event/xAOD/xAODPrimitives ++ Event/xAOD/xAODTracking ++ Event/xAOD/xAODTruth ++ Event/xAOD/xAODTruthAthenaPool ++ Event/xAOD/xAODTruthCnv ++ External/AtlasDataArea ++ External/Pythia8 ++ External/pyAMI ++ Generators/Charybdis_i +- Generators/EmbeddedTrackGenerator +- Generators/ExoGraviton_i +- Generators/GravADD_i +- Generators/Horace_i +- Generators/HvGen_i +- Generators/MadCUP_i +- Generators/Matchig_i +- Generators/Protos_i +- Generators/Pyquench_i +- Generators/PythiaB +- Generators/PythiaExo_i +- Generators/Reldis_i +- Generators/VBFNLOControl +- Generators/TrackRecordGenerator ++ Generators/.* ++ InnerDetector/InDetExample/InDetRecExample ++ LArCalorimeter/LArCabling ++ LArCalorimeter/LArGeoModel/LArHV ++ LArCalorimeter/LArGeoModel/LArReadoutGeometry ++ LArCalorimeter/LArIdentifier ++ MuonSpectrometer/MuonIdHelpers ++ PhysicsAnalysis/AnalysisCommon/ParticleEvent ++ PhysicsAnalysis/AnalysisCommon/ParticleJetTools ++ PhysicsAnalysis/PATJobTransforms ++ PhysicsAnalysis/TruthParticleID/McParticleEvent ++ PhysicsAnalysis/TruthParticleID/McParticleKernel ++ Reconstruction/EventShapes/EventShapeInterface ++ Reconstruction/Jet/JetEDM ++ Reconstruction/Jet/JetEvent ++ Reconstruction/Jet/JetInterface ++ Reconstruction/Jet/JetRec ++ Reconstruction/MissingETEvent ++ Reconstruction/Particle ++ Reconstruction/RecExample/RecExCommon ++ Reconstruction/RecExample/RecExConfig ++ Simulation/Tools/AtlasCLHEP_RandomGenerators ++ Tools/ART ++ Tools/JobTransforms ++ Tools/KitValidation ++ Tools/PathResolver ++ Tools/PmbCxxUtils ++ Tools/PyJobTransforms ++ Tools/PyJobTransformsCore ++ Tools/PyUtils ++ Tools/Scripts ++ Tools/XMLCoreParser ++ Tracking/TrkDetDescr/TrkDetDescrUtils ++ Tracking/TrkDetDescr/TrkDetElementBase ++ Tracking/TrkDetDescr/TrkSurfaces ++ Tracking/TrkEvent/TrkEventPrimitives ++ Tracking/TrkEvent/TrkMaterialOnTrack ++ Tracking/TrkEvent/TrkMeasurementBase ++ Tracking/TrkEvent/TrkNeutralParameters ++ Tracking/TrkEvent/TrkParameters ++ Tracking/TrkEvent/TrkParametersBase ++ Tracking/TrkEvent/TrkParticleBase ++ Tracking/TrkEvent/TrkSegment ++ Tracking/TrkEvent/TrkTrack ++ Tracking/TrkEvent/TrkTrackLink ++ Tracking/TrkEvent/TrkTrackSummary ++ Tracking/TrkEvent/VxVertex ++ PhysicsAnalysis/MCTruthClassifier +# Ignore everything else +- .* + diff --git a/Projects/AthGeneration/version.txt b/Projects/AthGeneration/version.txt new file mode 100644 index 0000000000000000000000000000000000000000..f7fbce293b61ab52ce2049b102d5403190a3ad5c --- /dev/null +++ b/Projects/AthGeneration/version.txt @@ -0,0 +1 @@ +22.0.10 diff --git a/Projects/AthSimulation/externals.txt b/Projects/AthSimulation/externals.txt index 90c6b8fe5f8567bfb6caea0412b2a6c5965027e8..7f4a0a757f13aefc66b3c715e80bcfe19fbdabff 100644 --- a/Projects/AthSimulation/externals.txt +++ b/Projects/AthSimulation/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthSimulationExternalsVersion = 2.0.56 +AthSimulationExternalsVersion = 2.0.57 # The version of atlas/Gaudi to use: GaudiVersion = v33r0.003 diff --git a/Projects/Athena/externals.txt b/Projects/Athena/externals.txt index 73b949186a0c324fd693ea40ad9e20dc815108ad..c31020459e677e03e32768f12d585330d419c3d4 100644 --- a/Projects/Athena/externals.txt +++ b/Projects/Athena/externals.txt @@ -6,7 +6,7 @@ # forbidden. # The version of atlas/atlasexternals to use: -AthenaExternalsVersion = 2.0.56 +AthenaExternalsVersion = 2.0.57 # The version of atlas/Gaudi to use: GaudiVersion = v33r0.003 diff --git a/Projects/VP1Light/externals.txt b/Projects/VP1Light/externals.txt index 8c3230444437adcbbe4bc892d96d78d25a5280fe..4478114a9c29f1225269759e2c644ab69162c339 100644 --- a/Projects/VP1Light/externals.txt +++ b/Projects/VP1Light/externals.txt @@ -6,4 +6,4 @@ # forbidden. # The version of atlas/atlasexternals to use: -VP1LightExternalsVersion = 2.0.56 +VP1LightExternalsVersion = 2.0.57