Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
38 changes: 37 additions & 1 deletion PWGUD/Core/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -71,4 +71,40 @@ o2physics_add_library(FITCutParHolder

o2physics_target_root_dictionary(FITCutParHolder
HEADERS FITCutParHolder.h
LINKDEF FITCutParHolderLinkDef.h)
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.
<Framework/ASoA.h>
<Framework/AnalysisDataModel.h>
<Framework/AnalysisHelpers.h>
<Framework/AnalysisTask.h>
<Framework/ConfigContext.h>
<Framework/Configurable.h>
<Framework/DataProcessorSpec.h>
<Framework/HistogramRegistry.h>
<Framework/HistogramSpec.h>
<Framework/InitContext.h>
[["PWGUD/DataModel/UDTables.h"]] # 79%, ~650 lines
)
endif()
13 changes: 13 additions & 0 deletions PWGUD/Core/udTablesPCH.cxx
Original file line number Diff line number Diff line change
@@ -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.
10 changes: 10 additions & 0 deletions PWGUD/TableProducer/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)

Expand All @@ -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)

Expand All @@ -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)

Expand Down
6 changes: 6 additions & 0 deletions PWGUD/TableProducer/Converters/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Loading
Loading