Skip to content
Snippets Groups Projects
Commit bba6c74e authored by Murilo Rangel's avatar Murilo Rangel
Browse files

merge master and including fastjet cmake

parents a6e098e3 ea51fffb
No related branches found
No related tags found
No related merge requests found
Pipeline #3254861 passed
Showing
with 138 additions and 68 deletions
......@@ -32,7 +32,32 @@ DoxyWarnings.log
.pydevproject
.eclipse/
# CMT tempoary files
# Environment files (VSCode)
**/.vscode
.env
# Jupyter Notebook
.ipynb_checkpoints
# IPython
profile_default/
ipython_config.py
# pytest byproducts
.pytest_cache/
# QMTest byproducts
*.new
**/tests/qmtest/*.*
!**/tests/qmtest/*.qms
!**/tests/qmtest/*.qmt
# Sphinx by-products
doc/_env*
doc/_build
doc/graphviz
doc/selection/
build.*.log
Makefile
NMake
......
......@@ -15,7 +15,7 @@ check-copyright:
image: gitlab-registry.cern.ch/ci-tools/ci-worker:cc7
script:
- curl -o lb-check-copyright "https://gitlab.cern.ch/lhcb-core/LbDevTools/raw/master/LbDevTools/SourceTools.py?inline=false"
- python lb-check-copyright origin/${TARGET_BRANCH}
- python lb-check-copyright origin/${TARGET_BRANCH} --exclude lhcbproject.yml
check-formatting:
image: gitlab-registry.cern.ch/lhcb-docker/style-checker
......@@ -41,4 +41,8 @@ python-linting:
# Only run the pyflakes linter and a few select pycodestyle errors
# Lint a single file because much of the code in Analysis is yet to be checked whether it will be kept for run 3.
# This one file has been updated to pass the linter checks!
- flake8 --exclude '*.opts.py' --select=F,E71,E9,W1,W6 $(find Phys/AnalysisPython -name '__init__.py')
- flake8 --exclude '*.opts.py' --select=F,E71,E9,W1,W6 $(find Phys/FunTuple -name '*.py')
include:
- project: 'lhcb-rta/reference-update-bot'
file: 'templates/ref-bot-ci-trigger-template.yml'
{'DaVinciTrackRefitting': {'RefitParticleTracks': True, 'ParticleRefitter': True, 'TracksFromParticles': True}, 'JetTagging': {'LoKi__MuonTag': True, 'LoKi__SVTag': True, 'LoKi__ElectronTag': True, 'LoKi__TopoTag': True, 'LoKi__TopoTagDir': True, 'LoKi__JetTagTruthNew': True, 'LoKi__JetTagTruthMCPart': True, 'LoKi__SeedFinderNTrks': True, 'LoKi__JetTagTruth': True, 'LoKi__NNBTag': True, 'FilterJet': True, 'LoKi__IPTag': True}, 'DecayTreeTupleDalitz': {'TupleToolDalitz': True, 'MCTupleToolDalitz': True}, 'ParticleMakerChecker': {'ParticleEffPurMoni': True}, 'DecayTreeTupleMuonCalib': {'TupleToolMuonPid': True, 'TupleToolMuonIDCalib': True}, 'DaVinciAssociators': {'ChargedPP2MC': True, 'Particle2MCChi2': True, 'NeutralPP2MC': True, 'CompositeParticle2MCLinks': True, 'Particle2MCWithChi2': True, 'Particle2MCLinks': True, 'TestLinker': True}, 'RichPIDQC': {'JPsiMuMuConf': True, 'KshortPiPiConf': True, 'LambdaToProtonPionConf': True, 'DsToPhiPiConf': True, 'DstarToDzeroPiConf': True, 'RichPIDQCConf': True}, 'DecayTreeTupleBase': {'EventTuple': True, 'MCDecayTreeTuple': True, 'DecayTreeTuple': True, 'TupleToolDecay': True}, 'DaVinciMCTools': {'FilterEventByMCDecay': True, 'MCPrimVertexMaker': True, 'BackgroundCategoryViaRelations': True, 'MCReconstructed': True, 'DaVinciSmartAssociator': True, 'MCParticleMaker': True, 'FilterToFixOppositeBFractions': True, 'MCParticleLinkerMaker': True, 'IsBEvent': True, 'P2MCPFromProtoP': True, 'DumpParticle': True, 'BackgroundCategory': True, 'DaVinciAssociatorsWrapper': True, 'MCParticleArrayFilterAlg': True, 'Particle2BackgroundCategoryRelationsAlg': True, 'PrintDecayTreeTool': True, 'FilterMCParticleArrayByDecay': True}, 'MicroDSTTools': {'CaloHypoCloner': True, 'WeightsVectorCloner': True, 'ParticleCloner': True, 'SwimmingReportCloner': True, 'VertexBaseFromRecVertexCloner': True, 'MuonPIDCloner': True, 'FlavourTagCloner': True, 'VertexBaseFromRecVertexClonerNoTracks': True, 'RecVertexClonerWithTracks': True, 'VertexBaseFromRecVertexClonerWithTracks': True, 'FlavourTagDeepCloner': True, 'MCVertexCloner': True, 'ProtoParticleCloner': True, 'VertexCloner': True, 'TrackCloner': True, 'RecVertexClonerNoTracks': True, 'MCParticleCloner': True, 'RecVertexCloner': True, 'CaloClusterCloner': True}, 'DecayTreeTuple': {'TupleToolVeto': True, 'TupleToolPi0Info': True, 'TupleToolParticleStats': True, 'TupleToolTagging': True, 'TupleToolSubMass': True, 'TupleToolMassHypo': True, 'TupleToolDira': True, 'TupleToolAngles': True, 'TupleToolGeometry': True, 'TupleToolPropertime': True, 'TupleToolDecayTreeFitter': True, 'TupleToolPid': True, 'TupleToolPhotonInfo': True, 'TupleToolP2VV': True, 'TupleToolBremInfo': True, 'TupleToolSelResults': True, 'TupleToolNeutrinoReco': True, 'TupleToolParticleReFit': True, 'TupleToolIsolationTwoBody': True, 'TupleToolVtxIsoln': True, 'TupleToolSwimmingInfo': True, 'TupleToolCaloHypo': True, 'TupleToolKinematic': True}, 'DaVinciTrackScaling': {'TrackSmearState': True, 'OldTrackSmearState': True, 'TrackScaleState': True}, 'Particle2MCTruth': {'MCMatchObjP2MCRelator': True, 'P2MCRelatorAlg': True}, 'DaVinciAngleCalculators': {'P2VVAngleCalculator': True, 'Bs2JpsiPhiAngleCalculator': True, 'Bd2KstarMuMuAngleCalculator': True, 'MCBs2JpsiPhiAngleCalculator': True, 'MCBd2KstarMuMuAngleCalculator': True}, 'LoKiPhysMC': {'LoKi__HepMCParticleMaker': True, 'LoKi__PV2MC': True, 'LoKi__Hybrid__MCTupleTool': True, 'LoKi__PV2MCAlg': True, 'LoKi__P2MCW': True, 'LoKi__Track2MC': True, 'LoKi__P2MC': True}, 'LoKiGenMC': {'LoKi__MC2GenCollisionAlg': True, 'LoKi__HepMC2MC': True, 'LoKi__HepMC2MCAlg': True, 'LoKi__MC2GenCollision': True}, 'VertexFitCheck': {'VtxChecker': True, 'ProperTimeChecker': True, 'CheatedPVReFitter': True, 'PhotonChecker': True, 'PVChecker': True}, 'DecayTreeTupleReco': {'TupleToolPrimaries': True, 'TupleToolTrackInfo': True, 'TupleToolRICHPid': True, 'TupleToolCPU': True, 'TupleToolProtoPData': True, 'TupleToolRecoStats': True}, 'DisplVerticesMC': {'SaveParticlesFrom': True, 'MCDisplVertices': True}, 'Analysis': {'DummyAnalysisAlg': True}, 'FlavourTaggingChecker': {'CheatedSelection': True, 'BDecayTool': True, 'BTaggingInclusive': True, 'BOppositeMonitoring': True, 'BTaggingAnalysis': True, 'TaggingUtilsChecker': True, 'BTaggingChecker': True}, 'HltSelChecker': {'HltCorrelations': True, 'HltBackgroundCategory': True, 'Hlt2Statistics': True, 'FilterTrueTracks': True, 'ReadHltReport': True}, 'DaVinciMonitors': {'ANNPIDTool': True, 'MuonPlotTool': True, 'ParticleMonitor': True, 'MomentumPlotTool': True, 'MassPlotTool': True, 'CombinedPidPlotTool': True, 'MuIDMonitor': True, 'CaloPlotTool': True, 'SimplePlots': True, 'MuEffMonitor': True, 'RichPlotTool': True}, 'DecayTreeTupleANNPID': {'TupleToolANNPIDTraining': True, 'TupleToolANNPID': True}, 'JetAccessoriesMC': {'LoKi__HepMCJets2HepMCJets': True, 'LoKi__HEPMCJetMaker': True, 'LoKi__ParticleMaker': True, 'LoKi__HepMCJets2Jets': True, 'LoKi__HepMCJets2JetsDeltaR': True, 'LoKi__MCJetMaker': True, 'LoKi__MCJets2Jets': True, 'WZPlusJetHepMCSelector': True, 'LoKi__MCPartBHadronSeed': True, 'MCJets2JetsAlg': True, 'LoKi__PartonicJets2HepMCJets': True, 'ZPlusJetHepMCSelector': True}, 'LoKiAlgoMC': {'LoKi__DecayTruth': True, 'LoKi__Hybrid__MCParticleArrayFilter': True}, 'LoKiExample': {'LoKi__Bs2PsiPhi': True, 'LoKi__CCTest': True, 'LoKi__Phi_Makers': True, 'LoKi__Fitters': True, 'LoKi__PhiMC': True, 'LoKi__DecayDescriptor': True, 'LoKi__MCMergedPi0s': True, 'LoKi__Phi': True, 'LoKi__SelectParticles': True, 'LoKi__MemFun': True, 'LoKi__SelectTracks': True, 'LoKi__TestHybrid': True, 'LoKi__GenDecayDescriptor': True, 'LoKi__MCMuons': True, 'LoKi__Track2MCEx': True, 'LoKi__MCSelect': True, 'LoKi__CheckMC_Bs2PsiPhi': True, 'LoKi__PhiK_Dalitz': True, 'LoKi__IPCheck': True, 'LoKi__Example__PV2MCEx': True, 'LoKi__MCDecayDescriptor': True, 'LoKi__TestFunctor': True, 'LoKi__DCCheck': True, 'LoKi__HelloWorld': True, 'LoKi__Bs2PsiPhi_NoMC': True}, 'DecayTreeTupleTracking': {'TupleToolVELOClusters': True, 'TupleToolTrackKink': True, 'TupleToolVeloTrackClusterInfo': True, 'TupleToolVeloTrackMatch': True, 'TupleToolDEDX': True, 'TupleToolTrackIsolation': True, 'TupleToolTrackPosition': True}, 'DecayTreeTupleTrigger': {'TupleToolTISTOS': True, 'TupleToolL0Data': True, 'TupleToolTrigger': True, 'TupleToolStripping': True, 'TupleToolTriggerRecoStats': True, 'TupleToolL0Calo': True, 'TupleToolEventInfo': True}, 'DSTWriters': {'SelDSTWriter': True, 'FixInputCopyStream': True, 'StripDSTWriter': True, 'MicroDSTWriter': True}, 'DecayTreeTupleMC': {'MCTupleToolInteractions': True, 'MCTupleToolPrimaries': True, 'MCTupleToolPID': True, 'MCTupleToolReconstructed': True, 'MCTupleToolPrompt': True, 'MCTupleToolDecayType': True, 'MCTupleToolAngles': True, 'TupleToolGeneration': True, 'TupleToolMCTruth': True, 'TupleToolMCBackgroundInfo': True, 'MCTupleToolKinematic': True, 'MCTupleToolEventType': True, 'MCTupleToolHierarchy': True, 'MCTupleToolP2VV': True}, 'DecayTreeTupleJets': {'TupleToolWZJets': True, 'TupleToolJetTag': True, 'TupleToolJets': True, 'TupleToolJetRelations': True}, 'MicroDSTAlgorithm': {'CopyParticle2TPRelations': True, 'CopySwimmingReports': True, 'CopyParticle2LHCbIDs': True, 'CopyParticle2BackgroundCategory': True, 'CopyGaudiNumbers': True, 'CopyMCHeader': True, 'CopyRecSummary': True, 'CopyPrimaryVertices': True, 'CopyParticle2PVWeightedRelations': True, 'CopyODIN': True, 'CopyParticle2RelatedInfo': True, 'CopyFlavourTag': True, 'CopyParticle2MCRelations': True, 'CopyParticle2PVRelations': True, 'CopyL0DUReport': True, 'CopyParticles': True, 'CopyParticle2TisTosDecisions': True, 'CopyParticle2PVMap': True, 'CopyRecHeader': True, 'CopyMCParticles': True, 'MoveDataObject': True, 'CopyProtoParticles': True, 'CopyPVWeights': True, 'CopyHltDecReports': True}, 'TrackSmearing': {'TrackSmeared': True, 'IpImprover': True}}
###############################################################################
# (c) Copyright 2000-2019 CERN for the benefit of the LHCb Collaboration #
# (c) Copyright 2000-2021 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
......@@ -8,20 +8,49 @@
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
CMAKE_MINIMUM_REQUIRED(VERSION 2.8.5)
#---------------------------------------------------------------
# Load macros and functions for Gaudi-based projects
find_package(GaudiProject)
#---------------------------------------------------------------
cmake_minimum_required(VERSION 3.15)
# Workaround for rootcling not knowing what __nodiscard__ is
find_package(ROOT)
if(ROOT_VERSION MATCHES "^6\\.22.*")
project(Analysis VERSION 34.1
LANGUAGES CXX)
# Enable testing with CTest/CDash
include(CTest)
list(PREPEND CMAKE_MODULE_PATH
${PROJECT_SOURCE_DIR}/cmake
)
# Dependencies
set(WITH_Analysis_PRIVATE_DEPENDENCIES TRUE)
include(AnalysisDependencies)
# Silence an unavoidable warning from cling
# see https://gitlab.cern.ch/lhcb/LHCb/-/merge_requests/2912
if(ROOT_VERSION MATCHES "^6\\.2[2-4].*")
set(ANALYSIS_DICT_GEN_DEFAULT_OPTS -Wno-unknown-attributes)
message(STATUS "Generating dictionaries with additional flags: " ${ANALYSIS_DICT_GEN_DEFAULT_OPTS})
message(STATUS "Generating dictionaries with additional flags: ${ANALYSIS_DICT_GEN_DEFAULT_OPTS}")
endif()
# Declare project name and version
gaudi_project(Analysis v32r0
USE Phys v31r1)
# -- Subdirectories
lhcb_add_subdirectories(
Phys/AnalysisPython
Phys/DaVinciAssociators
Phys/DaVinciDecayFinder
Phys/DaVinciMCTools
Phys/DaVinciTools
Phys/DaVinciTrackScaling
Phys/DSTWriters
Phys/FunTuple
Phys/LoKiAlgoMC
Phys/LoKiPhysMC
Phys/Particle2MCTruth
Phys/JetAccessoriesMC
)
gaudi_install(CMAKE
# helpers to find external projects
cmake/FindFastJet.cmake
)
lhcb_finalize_configuration()
......@@ -10,9 +10,9 @@ This helps with the validation of code prior to making it available in the offic
- `run2-patches` branch: new developments and updates targeting runs 1+2 analysis and/or restripping. Builds on current supported platforms against latest version of Gaudi
- `2018-patches` branch: for 2018 incremental stripping (`S34r0pX`, `S35r0pX`, `S35r1pX`), 2015 and 2016 restripping (`S24r2`, `S28r2`) and patches to stripping in 2015, 2016 and 2018 simulation workflows. Builds with gcc62 on slc6 and centos7 and with gcc7 on centos7
- `2018-patches` branch: for 2018 incremental stripping (`S34r0pX`, `S35r0pX`, `S35r1pX`), 2015 and 2016 restripping (`S24r2`, `S28r2`) and patches to stripping in 2015, 2016 and 2018 simulation workflows. Builds with gcc62 on centos7
- `2017-patches` branch: for 2017 incremental stripping (`S29r2pX` (pp), `S32r0pX` (pp 5 Tev)) and patches to stripping (`S29r2`, `S29r2p1`, `S32`) in 2017 simulation workflows. Builds with gcc49 on slc6 and with gcc62 on slc6 and centos7
- `2017-patches` branch: for 2017 incremental stripping (`S29r2pX` (pp), `S32r0pX` (pp 5 Tev)) and patches to stripping (`S29r2`, `S29r2p1`, `S29r2p2`, `S32`) in 2017 simulation workflows. Builds with gcc62 on centos7
- `2016-patches` branch: for 2016 incremental stripping (`S28r1pX`, `S30r2pX`, `S30r3pX`) and patches to stripping in 2016 simulation workflows. Builds with gcc49 on slc6
......
###############################################################################
# (c) Copyright 2000-2020 CERN for the benefit of the LHCb Collaboration #
# (c) Copyright 2000-2021 CERN for the benefit of the LHCb Collaboration #
# #
# This software is distributed under the terms of the GNU General Public #
# Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". #
......@@ -8,57 +8,70 @@
# granted to it by virtue of its status as an Intergovernmental Organization #
# or submit itself to any jurisdiction. #
###############################################################################
gaudi_subdir(AnalysisPython)
gaudi_depends_on_subdirs(GaudiPython
Kernel/LHCbMath)
find_package(ROOT REQUIRED)
find_package(pyanalysis)
find_package(pytools)
find_package(FFTW)
find_package(Boost)
find_package(PythonLibs)
include_directories(SYSTEM ${Boost_INCLUDE_DIRS} ${ROOT_INCLUDE_DIRS} ${PYTHON_INCLUDE_DIRS})
if(ROOT_VERSION VERSION_LESS "6.22")
set( pyroot ROOT::PyROOT )
else()
set( pyroot ROOT::ROOTTPython )
endif()
#[=======================================================================[.rst:
Phys/AnalysisPython
-------------------
#]=======================================================================]
gaudi_add_library(AnalysisPythonLib
src/*.cpp
AnalysisPythonDict_classdef.cpp
PUBLIC_HEADERS Analysis
INCLUDE_DIRS ROOT
LINK_LIBRARIES
ROOT::Core
ROOT::TreePlayer
ROOT::RooFit
ROOT::TMVA
${pyroot}
GaudiPythonLib
LHCbMathLib)
gaudi_add_dictionary(AnalysisPython
dict/AnalysisPythonDict.h
dict/AnalysisPython.xml
INCLUDE_DIRS ROOT
LINK_LIBRARIES
GaudiPythonLib
LHCbMathLib
AnalysisPythonLib
SPLIT_CLASSDEF)
SOURCES
src/ErrorHandlers.cpp
src/Formula.cpp
src/Funcs.cpp
src/HProject.cpp
src/HStats.cpp
src/IFuncs.cpp
src/Iterator.cpp
src/Models.cpp
src/Models2D.cpp
src/Models3D.cpp
src/Mute.cpp
src/Notifier.cpp
src/OstapFixes.cpp
src/Printable.cpp
src/PyFuncs.cpp
src/PyIterator.cpp
src/PyPdf.cpp
src/RooMakeHistos.cpp
src/SFactor.cpp
src/StatVar.cpp
src/Tee.cpp
src/Tmva.cpp
src/UStat.cpp
src/generated_classdef.cpp
LINK
PUBLIC
Gaudi::GaudiKernel
LHCb::LHCbMathLib
Python::Python
ROOT::Core
ROOT::Hist
ROOT::RooFit
ROOT::TreePlayer
PRIVATE
Boost::headers
GSL::gsl
ROOT::Gpad
ROOT::MathCore
ROOT::ROOTTPython
ROOT::TMVA
ROOT::Tree
)
# Ensure that the library and the dictionary are built in the right order and
# not multiple times.
add_dependencies(AnalysisPythonLib AnalysisPythonGen)
gaudi_add_dictionary(AnalysisPythonDict
HEADERFILES dict/AnalysisPythonDict.h
SELECTION dict/AnalysisPython.xml
# Linker options are equired to work with ROOT 6 and --slit=classdef
# (see https://sft.its.cern.ch/jira/browse/ROOT-6233)
LINK -Wl,--no-as-needed AnalysisPythonLib -Wl,--as-needed
OPTIONS --split=classdef
)
# Required to work with ROOT 6
# (see https://sft.its.cern.ch/jira/browse/ROOT-6233)
target_link_libraries(AnalysisPythonDict -Wl,--no-as-needed AnalysisPythonLib -Wl,--as-needed)
# This (and the special src/generated_classdef.cpp) is needed to be able to use --split=classdef
# when generating the dictionary
target_include_directories(AnalysisPythonLib SYSTEM PRIVATE ${CMAKE_CURRENT_BINARY_DIR} ${CMAKE_CURRENT_SOURCE_DIR})
add_dependencies(AnalysisPythonLib AnalysisPythonDict-gen)
gaudi_install_python_modules()
gaudi_install(PYTHON)
gaudi_add_test(QMTest QMTEST)
gaudi_add_tests(QMTest)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment