diff --git a/PWGUD/Core/CMakeLists.txt b/PWGUD/Core/CMakeLists.txt index 3a7fe0950cf..243935064d4 100644 --- a/PWGUD/Core/CMakeLists.txt +++ b/PWGUD/Core/CMakeLists.txt @@ -71,4 +71,40 @@ o2physics_add_library(FITCutParHolder o2physics_target_root_dictionary(FITCutParHolder HEADERS FITCutParHolder.h - LINKDEF FITCutParHolderLinkDef.h) \ No newline at end of file + LINKDEF FITCutParHolderLinkDef.h) +# Precompiled header shared across PWGUD. Percentages are the share of the +# group's workflow translation units that include the header, measured over the tree. +# UDTables.h is the group's single shared data model. +# +# runDataProcessing.h is deliberately NOT precompiled: it requires each workflow's +# customize() to be declared before it is included, so precompiling it silently +# unregisters every option (the binary aborts at --dump-workflow, but links fine). +# +# Skipped under recc, which caches compilations remotely instead. +add_library(UDTablesPCH OBJECT udTablesPCH.cxx) +# The PCH compile is one of the heaviest translation units in the tree -- it +# instantiates the whole data model up front -- but add_library() does not put +# it in the 'analysis' job pool that o2physics_add_dpl_workflow() uses for the +# workflows. Left out, it runs unthrottled alongside the pooled compilations +# and defeats the per-job memory budget the pool exists to enforce. +set_property(TARGET UDTablesPCH PROPERTY JOB_POOL_COMPILE analysis) +target_link_libraries(UDTablesPCH PUBLIC O2::Framework O2Physics::AnalysisCore) +if(NOT DEFINED ENV{USE_RECC}) + target_precompile_headers(UDTablesPCH PRIVATE + # Framework baseline — same set AnalysisPCH precompiles. A target with + # REUSE_FROM uses ONLY this PCH, so anything left out here is parsed from + # scratch by every consumer: without this block these workflows were + # precompiling LESS than the default carrier they opted out of. + + + + + + + + + + + [["PWGUD/DataModel/UDTables.h"]] # 79%, ~650 lines + ) +endif() diff --git a/PWGUD/Core/udTablesPCH.cxx b/PWGUD/Core/udTablesPCH.cxx new file mode 100644 index 00000000000..8faa701be69 --- /dev/null +++ b/PWGUD/Core/udTablesPCH.cxx @@ -0,0 +1,13 @@ +// Copyright 2019-2026 CERN and copyright holders of ALICE O2. +// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders. +// All rights not expressly granted are reserved. +// +// This software is distributed under the terms of the GNU General Public +// License v3 (GPL Version 3), copied verbatim in the file "COPYING". +// +// In applying this license CERN does not waive the privileges and immunities +// granted to it by virtue of its status as an Intergovernmental Organization +// or submit itself to any jurisdiction. + +// Carrier for the UDTablesPCH precompiled header; see this directory's +// CMakeLists.txt. It exists only to own the PCH, so it has no code of its own. diff --git a/PWGUD/TableProducer/CMakeLists.txt b/PWGUD/TableProducer/CMakeLists.txt index 41ee7f57d8d..a26219c2e6f 100644 --- a/PWGUD/TableProducer/CMakeLists.txt +++ b/PWGUD/TableProducer/CMakeLists.txt @@ -13,6 +13,7 @@ add_subdirectory(Converters) o2physics_add_dpl_workflow(dg-cand-producer SOURCES dgCandProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGCutparHolder O2Physics::AnalysisCCDB O2Physics::EventFilteringUtils COMPONENT_NAME Analysis) @@ -33,21 +34,25 @@ o2physics_add_dpl_workflow(upccand-producer # o2-linter: disable=name/o2-workflo o2physics_add_dpl_workflow(tau-event-table-producer SOURCES tauEventTableProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(two-tracks-event-table-producer SOURCES twoTracksEventTableProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(two-fwd-tracks-event-table-producer SOURCES twoFwdTracksEventTableProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(fwd-track-propagation SOURCES fwdTrackPropagation.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::GlobalTracking COMPONENT_NAME Analysis) @@ -63,26 +68,31 @@ o2physics_add_dpl_workflow(udmccollisions-to-udcollisions # o2-linter: disable=n o2physics_add_dpl_workflow(tau-three-prong-event-table-producer SOURCES tauThreeProngEventTableProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-cand-producer-muon SOURCES upcCandProducerMuon.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::UPCCutparHolder O2::GlobalTracking COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(true-gap-producer SOURCES trueGapProducer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-cand-producer-global-muon SOURCES upcCandProducerGlobalMuon.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::UPCCutparHolder O2::GlobalTracking COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-cand-producer-semi-fwd SOURCES upcCandProducerSemiFwd.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::UPCCutparHolder O2::GlobalTracking COMPONENT_NAME Analysis) diff --git a/PWGUD/TableProducer/Converters/CMakeLists.txt b/PWGUD/TableProducer/Converters/CMakeLists.txt index 9fd7c5b02e9..8197eb878be 100644 --- a/PWGUD/TableProducer/Converters/CMakeLists.txt +++ b/PWGUD/TableProducer/Converters/CMakeLists.txt @@ -11,30 +11,36 @@ o2physics_add_dpl_workflow(fwd-tracks-extra-converter SOURCES UDFwdTracksExtraConverter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(collisions-converter SOURCES UDCollisionsConverter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(collision-fit-bits-converter SOURCES UDCollisionFITBitsConverter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(collisionselextras-converter SOURCES UDCollisionSelExtrasConverter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(collisionselextras-converter-v002 SOURCES UDCollisionSelExtrasV002Converter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(collisionselextras-converter-v003 SOURCES UDCollisionSelExtrasV003Converter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) diff --git a/PWGUD/Tasks/CMakeLists.txt b/PWGUD/Tasks/CMakeLists.txt index 2d238dc6ed9..9e24487513f 100644 --- a/PWGUD/Tasks/CMakeLists.txt +++ b/PWGUD/Tasks/CMakeLists.txt @@ -11,6 +11,7 @@ o2physics_add_dpl_workflow(upc-polarisation-jpsi-incoh SOURCES upcPolarisationJpsiIncoh.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) @@ -26,11 +27,13 @@ o2physics_add_dpl_workflow(upc-analysis o2physics_add_dpl_workflow(sg-spectra SOURCES sgSpectraAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-pid-spectra-table SOURCES sgPIDSpectraTable.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) @@ -41,46 +44,55 @@ o2physics_add_dpl_workflow(sg-pid-analyzer o2physics_add_dpl_workflow(sg-pid-spectra SOURCES sgPIDSpectra.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-incl-jpsi SOURCES sgInclJpsi.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-excl-omega SOURCES sgExclOmega.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-excl-universe SOURCES sgExcUniverse.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-fourpi SOURCES sgFourPiAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-sixpi SOURCES sgSixPiAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-twopi SOURCES sgTwoPiAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-d0 SOURCES sgD0Analyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-fit SOURCES sgFITAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) @@ -106,11 +118,13 @@ o2physics_add_dpl_workflow(diff-qa o2physics_add_dpl_workflow(dg-cand-analyzer SOURCES dgCandAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGCutparHolder O2Physics::UDGoodRunSelector O2Physics::DGPIDSelector O2Physics::UDFSParser COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-cand-analyzer SOURCES upcCandidateAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) @@ -131,121 +145,145 @@ o2physics_add_dpl_workflow(upc-veto-analysis o2physics_add_dpl_workflow(tautau13topo SOURCES upcTauTau13topo.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-tau-rl SOURCES upcTauRl.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::ReconstructionDataFormats O2::DetectorsBase O2::DetectorsCommonDataFormats COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(polarisation-rho SOURCES polarisationRho.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-jpsi-corr SOURCES upcJpsiCorr.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-phi SOURCES exclusivePhi.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-photonuclear-jmg SOURCES upcPhotonuclearAnalysisJMG.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::PWGCFCore O2::ReconstructionDataFormats O2::DetectorsBase O2::DetectorsCommonDataFormats COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-two-protons SOURCES exclusiveTwoProtons.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-two-protons-sg SOURCES exclusiveTwoProtonsSG.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-phi-leptons SOURCES exclusivePhiLeptons.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-phi-leptons-trees SOURCES exclusivePhiLeptonsTrees.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-pentaquark SOURCES exclusivePentaquark.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(inclusive-phikstar-sd SOURCES sginclusivePhiKstarSD.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-exclusive-phi SOURCES sgExclusivePhi.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-exclusive-phi-its SOURCES sgExclusivePhiITSselections.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-pion-analysis SOURCES upcPionAnalysis.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(fwd-muons-upc SOURCES fwdMuonsUpc.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-fwd-jpsi-rl SOURCES upcFwdJpsiRl.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-semi-fwd-jpsi-rl SOURCES upcSemiFwdJpsiRl.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-event-its-rof-counter SOURCES upcEventItsRofCounter.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::AnalysisCCDB COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-rho-analysis SOURCES upcRhoAnalysis.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-rho-prime-analysis SOURCES upcRhoPrimeAnalysis.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(event-by-event SOURCES eventByevent.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(exclusive-rho-to-four-pi SOURCES exclusiveRhoTo4Pi.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::DGPIDSelector COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-quarkonia-central-barrel SOURCES upcQuarkoniaCentralBarrel.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2::DetectorsBase COMPONENT_NAME Analysis) @@ -256,16 +294,19 @@ o2physics_add_dpl_workflow(upc-test-mc-std-tabs-rl o2physics_add_dpl_workflow(decaytree-analyzer SOURCES decayTreeAnalyzer.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::UDGoodRunSelector O2Physics::decayTree COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(flow-cumulants-upc SOURCES flowCumulantsUpc.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::GFWCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(flow-correlations-upc SOURCES flowCorrelationsUpc.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::GFWCore O2Physics::PWGCFCore O2Physics::TwoPartCorrCore COMPONENT_NAME Analysis) @@ -276,21 +317,25 @@ o2physics_add_dpl_workflow(flow-mc-upc o2physics_add_dpl_workflow(flow-long-range-corr-upc SOURCES flowLongRangeCorrUpc.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore O2Physics::AnalysisCCDB O2Physics::PWGCFCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(analysis-mc-dpm-jet-sg-v3 SOURCES analysisMCDPMJetSGv3.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(upc-test-rct-tables SOURCES upcTestRctTables.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-exclusive-jpsi-midrapidity SOURCES sgExclusiveJpsiMidrapidity.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) @@ -301,15 +346,18 @@ o2physics_add_dpl_workflow(upc-vm-rof o2physics_add_dpl_workflow(upc-test-fit-bit-mapping SOURCES upcTestFitBitMapping.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(pt-spectra-inclusive-upc SOURCES ptSpectraInclusiveUpc.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis) o2physics_add_dpl_workflow(sg-deuteron-spectra SOURCES sgDeuteronSpectra.cxx + REUSE_FROM UDTablesPCH PUBLIC_LINK_LIBRARIES O2::Framework O2Physics::AnalysisCore COMPONENT_NAME Analysis)