diff --git a/Common/TableProducer/trackPropagationTester.cxx b/Common/TableProducer/trackPropagationTester.cxx index 694ff77d3c0..18543ee0994 100644 --- a/Common/TableProducer/trackPropagationTester.cxx +++ b/Common/TableProducer/trackPropagationTester.cxx @@ -23,24 +23,28 @@ // //=============================================================== -#include "Framework/AnalysisDataModel.h" -#include "Framework/AnalysisTask.h" -#include "Framework/runDataProcessing.h" -#include "Framework/RunningWorkflowInfo.h" -#include "Common/DataModel/TrackSelectionTables.h" #include "Common/Core/trackUtilities.h" -#include "ReconstructionDataFormats/DCA.h" -#include "DetectorsBase/Propagator.h" -#include "DetectorsBase/GeometryManager.h" -#include "CommonUtils/NameConf.h" +#include "Common/DataModel/TrackSelectionTables.h" +#include "Common/Tools/StandardCCDBLoader.h" +#include "Common/Tools/TrackPropagationModule.h" +#include "Common/Tools/TrackTuner.h" + +#include "CCDB/BasicCCDBManager.h" #include "CCDB/CcdbApi.h" +#include "CommonConstants/GeomConstants.h" +#include "CommonUtils/NameConf.h" +#include "DataFormatsCalibration/MeanVertexObject.h" #include "DataFormatsParameters/GRPMagField.h" -#include "CCDB/BasicCCDBManager.h" +#include "DetectorsBase/GeometryManager.h" +#include "DetectorsBase/Propagator.h" +#include "Framework/AnalysisDataModel.h" +#include "Framework/AnalysisTask.h" #include "Framework/HistogramRegistry.h" -#include "DataFormatsCalibration/MeanVertexObject.h" -#include "CommonConstants/GeomConstants.h" -#include "Common/Tools/TrackPropagationModule.h" -#include "Common/Tools/StandardCCDBLoader.h" +#include "Framework/RunningWorkflowInfo.h" +#include "Framework/runDataProcessing.h" +#include "ReconstructionDataFormats/DCA.h" + +#include // The Run 3 AO2D stores the tracks at the point of innermost update. For a track with ITS this is the innermost (or second innermost) // ITS layer. For a track without ITS, this is the TPC inner wall or for loopers in the TPC even a radius beyond that. @@ -59,6 +63,9 @@ struct TrackPropagationTester { o2::common::TrackPropagationProducts trackPropagationProducts; o2::common::TrackPropagationConfigurables trackPropagationConfigurables; + // the track tuner object -> needs to be here as it inherits from ConfigurableGroup (+ has its own copy of ccdbApi) + TrackTuner trackTunerObj; + // CCDB boilerplate declarations o2::framework::Configurable ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; Service ccdb; @@ -76,14 +83,14 @@ struct TrackPropagationTester { ccdb->setURL(ccdburl.value); // task-specific - trackPropagation.init(trackPropagationConfigurables, registry, initContext); + trackPropagation.init(trackPropagationConfigurables, trackTunerObj, registry, initContext); } void processReal(aod::Collisions const& collisions, soa::Join const& tracks, aod::Collisions const&, aod::BCs const& bcs) { // task-specific ccdbLoader.initCCDBfromBCs(standardCCDBLoaderConfigurables, ccdb, bcs); - trackPropagation.fillTrackTables(trackPropagationConfigurables, ccdbLoader, collisions, tracks, trackPropagationProducts, registry); + trackPropagation.fillTrackTables(trackPropagationConfigurables, trackTunerObj, ccdbLoader, collisions, tracks, trackPropagationProducts, registry); } PROCESS_SWITCH(TrackPropagationTester, processReal, "Process Real Data", true); @@ -91,7 +98,7 @@ struct TrackPropagationTester { void processMc(aod::Collisions const& collisions, soa::Join const& tracks, aod::McParticles const&, aod::Collisions const&, aod::BCs const& bcs) { ccdbLoader.initCCDBfromBCs(standardCCDBLoaderConfigurables, ccdb, bcs); - trackPropagation.fillTrackTables(trackPropagationConfigurables, ccdbLoader, collisions, tracks, trackPropagationProducts, registry); + trackPropagation.fillTrackTables(trackPropagationConfigurables, trackTunerObj, ccdbLoader, collisions, tracks, trackPropagationProducts, registry); } PROCESS_SWITCH(TrackPropagationTester, processMc, "Process Monte Carlo", false); }; diff --git a/Common/Tools/StandardCCDBLoader.h b/Common/Tools/StandardCCDBLoader.h index 6ba4c9be9a1..2134fec2666 100644 --- a/Common/Tools/StandardCCDBLoader.h +++ b/Common/Tools/StandardCCDBLoader.h @@ -16,12 +16,18 @@ #ifndef COMMON_TOOLS_STANDARDCCDBLOADER_H_ #define COMMON_TOOLS_STANDARDCCDBLOADER_H_ -#include -#include -#include -#include +#include "CCDB/BasicCCDBManager.h" +#include "DataFormatsCalibration/MeanVertexObject.h" +#include "DataFormatsParameters/GRPMagField.h" +#include "DetectorsBase/GeometryManager.h" +#include "DetectorsBase/Propagator.h" #include "Framework/AnalysisDataModel.h" +#include +#include +#include +#include + //__________________________________________ // Standard class to load stuff // such as matLUT, B and mean Vertex diff --git a/Common/Tools/TrackPropagationModule.h b/Common/Tools/TrackPropagationModule.h index d8cc3fd4f28..305a7c774f2 100644 --- a/Common/Tools/TrackPropagationModule.h +++ b/Common/Tools/TrackPropagationModule.h @@ -16,16 +16,22 @@ #ifndef COMMON_TOOLS_TRACKPROPAGATIONMODULE_H_ #define COMMON_TOOLS_TRACKPROPAGATIONMODULE_H_ -#include -#include -#include -#include -#include +#include "TableHelper.h" + +#include "Common/Tools/TrackTuner.h" + +#include "DataFormatsCalibration/MeanVertexObject.h" +#include "DataFormatsParameters/GRPMagField.h" +#include "DetectorsBase/Propagator.h" #include "Framework/AnalysisDataModel.h" #include "Framework/Configurable.h" #include "Framework/HistogramSpec.h" -#include "Common/Tools/TrackTuner.h" -#include "TableHelper.h" + +#include +#include +#include +#include +#include //__________________________________________ // track propagation module @@ -81,7 +87,6 @@ class TrackPropagationModule // pointers to objs needed for operation std::shared_ptr trackTunedTracks; - TrackTuner trackTunerObj; // Running variables std::array mDcaInfo; @@ -91,7 +96,7 @@ class TrackPropagationModule o2::track::TrackParametrizationWithError mTrackParCov; template - void init(TConfigurableGroup const& cGroup, THistoRegistry& registry, TInitContext& initContext) + void init(TConfigurableGroup const& cGroup, TrackTuner& trackTunerObj, THistoRegistry& registry, TInitContext& initContext) { // Checking if the tables are requested in the workflow and enabling them fillTracks = isTableRequiredInWorkflow(initContext, "Tracks"); @@ -154,7 +159,7 @@ class TrackPropagationModule } template - void fillTrackTables(TConfigurableGroup const& cGroup, TCCDBLoader const& ccdbLoader, TCollisions const& collisions, TTracks const& tracks, TOutputGroup& cursors, THistoRegistry& registry) + void fillTrackTables(TConfigurableGroup const& cGroup, TrackTuner& trackTunerObj, TCCDBLoader const& ccdbLoader, TCollisions const& collisions, TTracks const& tracks, TOutputGroup& cursors, THistoRegistry& registry) { if (!fillTracks) { return; // suppress everything diff --git a/PWGLF/TableProducer/Strangeness/propagationService.cxx b/PWGLF/TableProducer/Strangeness/propagationService.cxx index 6140dd2cc8b..191b920d9ef 100644 --- a/PWGLF/TableProducer/Strangeness/propagationService.cxx +++ b/PWGLF/TableProducer/Strangeness/propagationService.cxx @@ -31,6 +31,7 @@ #include "Common/DataModel/TrackSelectionTables.h" #include "Common/Tools/StandardCCDBLoader.h" #include "Common/Tools/TrackPropagationModule.h" +#include "Common/Tools/TrackTuner.h" #include "CCDB/BasicCCDBManager.h" #include "CCDB/CcdbApi.h" @@ -46,6 +47,8 @@ #include "Framework/runDataProcessing.h" #include "ReconstructionDataFormats/DCA.h" +#include + using namespace o2; using namespace o2::framework; // using namespace o2::framework::expressions; @@ -81,6 +84,9 @@ struct propagationService { o2::pwglf::strangenessbuilder::preSelectOpts preSelectOpts; o2::pwglf::strangenessbuilder::BuilderModule strangenessBuilderModule; + // the track tuner object -> needs to be here as it inherits from ConfigurableGroup (+ has its own copy of ccdbApi) + TrackTuner trackTunerObj; + // track propagation o2::common::TrackPropagationProducts trackPropagationProducts; o2::common::TrackPropagationConfigurables trackPropagationConfigurables; @@ -97,21 +103,21 @@ struct propagationService { ccdb->setURL(ccdburl.value); // task-specific - trackPropagation.init(trackPropagationConfigurables, histos, initContext); + trackPropagation.init(trackPropagationConfigurables, trackTunerObj, histos, initContext); strangenessBuilderModule.init(baseOpts, v0BuilderOpts, cascadeBuilderOpts, preSelectOpts, histos, initContext); } void processRealData(soa::Join const& collisions, aod::V0s const& v0s, aod::Cascades const& cascades, aod::TrackedCascades const& trackedCascades, FullTracksExtIU const& tracks, aod::BCsWithTimestamps const& bcs) { ccdbLoader.initCCDBfromBCs(standardCCDBLoaderConfigurables, ccdb, bcs); - trackPropagation.fillTrackTables(trackPropagationConfigurables, ccdbLoader, collisions, tracks, trackPropagationProducts, histos); + trackPropagation.fillTrackTables(trackPropagationConfigurables, trackTunerObj, ccdbLoader, collisions, tracks, trackPropagationProducts, histos); strangenessBuilderModule.dataProcess(ccdb, histos, collisions, static_cast(nullptr), v0s, cascades, trackedCascades, tracks, bcs, static_cast(nullptr), products); } void processMonteCarlo(soa::Join const& collisions, aod::McCollisions const& mccollisions, aod::V0s const& v0s, aod::Cascades const& cascades, aod::TrackedCascades const& trackedCascades, FullTracksExtLabeledIU const& tracks, aod::BCsWithTimestamps const& bcs, aod::McParticles const& mcParticles) { ccdbLoader.initCCDBfromBCs(standardCCDBLoaderConfigurables, ccdb, bcs); - trackPropagation.fillTrackTables(trackPropagationConfigurables, ccdbLoader, collisions, tracks, trackPropagationProducts, histos); + trackPropagation.fillTrackTables(trackPropagationConfigurables, trackTunerObj, ccdbLoader, collisions, tracks, trackPropagationProducts, histos); strangenessBuilderModule.dataProcess(ccdb, histos, collisions, mccollisions, v0s, cascades, trackedCascades, tracks, bcs, mcParticles, products); }