Skip to content

Commit 238fe1f

Browse files
ddobrigkalibuild
andauthored
[Common] Further adjustments and cleanup to common services (#12809)
Co-authored-by: David Dobrigkeit Chinellato <david.dobrigkeit.chinellato.cern.ch> Co-authored-by: ALICE Builder <alibuild@users.noreply.github.com>
1 parent e91e159 commit 238fe1f

File tree

9 files changed

+259
-20
lines changed

9 files changed

+259
-20
lines changed

Common/TableProducer/PID/CMakeLists.txt

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -48,6 +48,16 @@ o2physics_add_dpl_workflow(pid-tpc-service
4848
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::MLCore O2Physics::AnalysisCCDB
4949
COMPONENT_NAME Analysis)
5050

51+
o2physics_add_dpl_workflow(pid-tpc-service-run2
52+
SOURCES pidTPCServiceRun2.cxx
53+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::MLCore O2Physics::AnalysisCCDB
54+
COMPONENT_NAME Analysis)
55+
56+
o2physics_add_dpl_workflow(pid-tpc-service-run3
57+
SOURCES pidTPCServiceRun3.cxx
58+
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::MLCore O2Physics::AnalysisCCDB
59+
COMPONENT_NAME Analysis)
60+
5161
o2physics_add_dpl_workflow(pid-tpc-base
5262
SOURCES pidTPCBase.cxx
5363
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore O2Physics::AnalysisCCDB

Common/TableProducer/PID/pidTPCService.cxx

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,12 +33,12 @@
3333
#include "MetadataHelper.h"
3434
#include "TableHelper.h"
3535
#include "pidTPCBase.h"
36-
#include "pidTPCModule.h"
3736

3837
#include "Common/Core/PID/TPCPIDResponse.h"
3938
#include "Common/DataModel/EventSelection.h"
4039
#include "Common/DataModel/Multiplicity.h"
4140
#include "Common/DataModel/PIDResponseTPC.h"
41+
#include "Common/Tools/PID/pidTPCModule.h"
4242
#include "Tools/ML/model.h"
4343

4444
#include "CCDB/BasicCCDBManager.h"
@@ -98,9 +98,15 @@ struct pidTpcService {
9898
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
9999
}
100100

101+
void processTracksMCIU(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels> const& tracks, aod::BCsWithTimestamps const& bcs, aod::McParticles const&)
102+
{
103+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
104+
}
105+
101106
PROCESS_SWITCH(pidTpcService, processTracks, "Process Tracks", false);
102107
PROCESS_SWITCH(pidTpcService, processTracksMC, "Process Tracks in MC (enables tune-on-data)", false);
103-
PROCESS_SWITCH(pidTpcService, processTracksIU, "Process TracksIU (experimental)", true);
108+
PROCESS_SWITCH(pidTpcService, processTracksIU, "Process TracksIU (Run 3)", true);
109+
PROCESS_SWITCH(pidTpcService, processTracksMCIU, "Process TracksIUMC (Run 3)", false);
104110
};
105111

106112
//****************************************************************************************
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
/// \file trackPropagationTester.cxx
13+
/// \brief testing ground for track propagation
14+
/// \author ALICE
15+
16+
//===============================================================
17+
//
18+
// Modularized version of TPC PID task
19+
//
20+
//===============================================================
21+
22+
#include <map>
23+
#include <memory>
24+
#include <string>
25+
#include <utility>
26+
#include <vector>
27+
// ROOT includes
28+
#include "TFile.h"
29+
#include "TRandom.h"
30+
#include "TSystem.h"
31+
32+
// O2 includes
33+
#include "MetadataHelper.h"
34+
#include "TableHelper.h"
35+
#include "pidTPCBase.h"
36+
37+
#include "Common/Core/PID/TPCPIDResponse.h"
38+
#include "Common/DataModel/EventSelection.h"
39+
#include "Common/DataModel/Multiplicity.h"
40+
#include "Common/DataModel/PIDResponseTPC.h"
41+
#include "Common/Tools/PID/pidTPCModule.h"
42+
#include "Tools/ML/model.h"
43+
44+
#include "CCDB/BasicCCDBManager.h"
45+
#include "CCDB/CcdbApi.h"
46+
#include "Framework/ASoAHelpers.h"
47+
#include "Framework/AnalysisDataModel.h"
48+
#include "Framework/AnalysisTask.h"
49+
#include "Framework/runDataProcessing.h"
50+
#include "ReconstructionDataFormats/Track.h"
51+
52+
using namespace o2;
53+
using namespace o2::framework;
54+
55+
o2::common::core::MetadataHelper metadataInfo; // Metadata helper
56+
57+
struct pidTpcServiceRun2 {
58+
59+
// CCDB boilerplate declarations
60+
o2::framework::Configurable<std::string> ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
61+
Service<o2::ccdb::BasicCCDBManager> ccdb;
62+
o2::ccdb::CcdbApi ccdbApi;
63+
64+
o2::aod::pid::pidTPCProducts products;
65+
o2::aod::pid::pidTPCConfigurables pidTPCopts;
66+
o2::aod::pid::pidTPCModule pidTPC;
67+
68+
void init(o2::framework::InitContext& initContext)
69+
{
70+
// CCDB boilerplate init
71+
ccdb->setURL(ccdburl.value);
72+
ccdb->setFatalWhenNull(false); // manual fallback in case ccdb entry empty
73+
ccdb->setCaching(true);
74+
ccdb->setLocalObjectValidityChecking();
75+
ccdb->setCreatedNotAfter(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
76+
ccdbApi.init(ccdburl.value);
77+
78+
// task-specific
79+
pidTPC.init(ccdb, ccdbApi, initContext, pidTPCopts, metadataInfo);
80+
}
81+
82+
void processTracks(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::Tracks, aod::TracksExtra> const& tracks, aod::BCsWithTimestamps const& bcs)
83+
{
84+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
85+
}
86+
void processTracksWithTracksQA(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::Tracks, aod::TracksExtra> const& tracks, aod::BCsWithTimestamps const& bcs, aod::TracksQA const& tracksQA)
87+
{
88+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, tracksQA, products);
89+
}
90+
91+
void processTracksMC(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::Tracks, aod::TracksExtra, aod::McTrackLabels> const& tracks, aod::BCsWithTimestamps const& bcs, aod::McParticles const&)
92+
{
93+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
94+
}
95+
96+
PROCESS_SWITCH(pidTpcServiceRun2, processTracks, "Process Tracks", true);
97+
PROCESS_SWITCH(pidTpcServiceRun2, processTracksMC, "Process Tracks in MC (enables tune-on-data)", false);
98+
};
99+
100+
//****************************************************************************************
101+
/**
102+
* Workflow definition.
103+
*/
104+
//****************************************************************************************
105+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
106+
{
107+
// Parse the metadata for later too
108+
metadataInfo.initMetadata(cfgc);
109+
110+
WorkflowSpec workflow{adaptAnalysisTask<pidTpcServiceRun2>(cfgc)};
111+
return workflow;
112+
}
Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+
// All rights not expressly granted are reserved.
4+
//
5+
// This software is distributed under the terms of the GNU General Public
6+
// License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+
//
8+
// In applying this license CERN does not waive the privileges and immunities
9+
// granted to it by virtue of its status as an Intergovernmental Organization
10+
// or submit itself to any jurisdiction.
11+
12+
/// \file trackPropagationTester.cxx
13+
/// \brief testing ground for track propagation
14+
/// \author ALICE
15+
16+
//===============================================================
17+
//
18+
// Modularized version of TPC PID task
19+
//
20+
//===============================================================
21+
22+
#include <map>
23+
#include <memory>
24+
#include <string>
25+
#include <utility>
26+
#include <vector>
27+
// ROOT includes
28+
#include "TFile.h"
29+
#include "TRandom.h"
30+
#include "TSystem.h"
31+
32+
// O2 includes
33+
#include "MetadataHelper.h"
34+
#include "TableHelper.h"
35+
#include "pidTPCBase.h"
36+
37+
#include "Common/Core/PID/TPCPIDResponse.h"
38+
#include "Common/DataModel/EventSelection.h"
39+
#include "Common/DataModel/Multiplicity.h"
40+
#include "Common/DataModel/PIDResponseTPC.h"
41+
#include "Common/Tools/PID/pidTPCModule.h"
42+
#include "Tools/ML/model.h"
43+
44+
#include "CCDB/BasicCCDBManager.h"
45+
#include "CCDB/CcdbApi.h"
46+
#include "Framework/ASoAHelpers.h"
47+
#include "Framework/AnalysisDataModel.h"
48+
#include "Framework/AnalysisTask.h"
49+
#include "Framework/runDataProcessing.h"
50+
#include "ReconstructionDataFormats/Track.h"
51+
52+
using namespace o2;
53+
using namespace o2::framework;
54+
55+
o2::common::core::MetadataHelper metadataInfo; // Metadata helper
56+
57+
struct pidTpcServiceRun3 {
58+
59+
// CCDB boilerplate declarations
60+
o2::framework::Configurable<std::string> ccdburl{"ccdburl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
61+
Service<o2::ccdb::BasicCCDBManager> ccdb;
62+
o2::ccdb::CcdbApi ccdbApi;
63+
64+
o2::aod::pid::pidTPCProducts products;
65+
o2::aod::pid::pidTPCConfigurables pidTPCopts;
66+
o2::aod::pid::pidTPCModule pidTPC;
67+
68+
void init(o2::framework::InitContext& initContext)
69+
{
70+
// CCDB boilerplate init
71+
ccdb->setURL(ccdburl.value);
72+
ccdb->setFatalWhenNull(false); // manual fallback in case ccdb entry empty
73+
ccdb->setCaching(true);
74+
ccdb->setLocalObjectValidityChecking();
75+
ccdb->setCreatedNotAfter(std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count());
76+
ccdbApi.init(ccdburl.value);
77+
78+
// task-specific
79+
pidTPC.init(ccdb, ccdbApi, initContext, pidTPCopts, metadataInfo);
80+
}
81+
82+
void processTracksIU(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra> const& tracks, aod::BCsWithTimestamps const& bcs)
83+
{
84+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
85+
}
86+
87+
void processTracksMCIU(soa::Join<aod::Collisions, aod::EvSels> const& collisions, soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels> const& tracks, aod::BCsWithTimestamps const& bcs, aod::McParticles const&)
88+
{
89+
pidTPC.process(ccdb, ccdbApi, bcs, collisions, tracks, static_cast<TObject*>(nullptr), products);
90+
}
91+
92+
PROCESS_SWITCH(pidTpcServiceRun3, processTracksIU, "Process TracksIU (Run 3)", true);
93+
PROCESS_SWITCH(pidTpcServiceRun3, processTracksMCIU, "Process TracksIUMC (Run 3)", false);
94+
};
95+
96+
//****************************************************************************************
97+
/**
98+
* Workflow definition.
99+
*/
100+
//****************************************************************************************
101+
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
102+
{
103+
// Parse the metadata for later too
104+
metadataInfo.initMetadata(cfgc);
105+
106+
WorkflowSpec workflow{adaptAnalysisTask<pidTpcServiceRun3>(cfgc)};
107+
return workflow;
108+
}

Common/TableProducer/eventSelectionService.cxx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323

2424
#include "Common/Core/trackUtilities.h"
2525
#include "Common/DataModel/TrackSelectionTables.h"
26-
#include "Common/Tools/EventSelectionTools.h"
26+
#include "Common/Tools/EventSelectionModule.h"
2727
#include "Common/Tools/timestampModule.h"
2828

2929
#include "CCDB/BasicCCDBManager.h"

Common/TableProducer/multCentTable.cxx

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,29 @@
2020
//
2121
//===============================================================
2222

23-
#include "Framework/AnalysisDataModel.h"
24-
#include "Framework/AnalysisTask.h"
25-
#include "Framework/runDataProcessing.h"
26-
#include "Framework/RunningWorkflowInfo.h"
27-
#include "Common/DataModel/TrackSelectionTables.h"
23+
#include "MetadataHelper.h"
24+
2825
#include "Common/Core/trackUtilities.h"
29-
#include "ReconstructionDataFormats/DCA.h"
30-
#include "DetectorsBase/Propagator.h"
31-
#include "DetectorsBase/GeometryManager.h"
32-
#include "CommonUtils/NameConf.h"
26+
#include "Common/DataModel/TrackSelectionTables.h"
27+
#include "Common/Tools/Multiplicity/MultModule.h"
28+
#include "Common/Tools/StandardCCDBLoader.h"
29+
#include "Common/Tools/TrackPropagationModule.h"
30+
31+
#include "CCDB/BasicCCDBManager.h"
3332
#include "CCDB/CcdbApi.h"
33+
#include "CommonConstants/GeomConstants.h"
34+
#include "CommonUtils/NameConf.h"
35+
#include "DataFormatsCalibration/MeanVertexObject.h"
3436
#include "DataFormatsParameters/GRPMagField.h"
35-
#include "CCDB/BasicCCDBManager.h"
37+
#include "DetectorsBase/GeometryManager.h"
38+
#include "DetectorsBase/Propagator.h"
39+
#include "Framework/AnalysisDataModel.h"
40+
#include "Framework/AnalysisTask.h"
3641
#include "Framework/HistogramRegistry.h"
37-
#include "DataFormatsCalibration/MeanVertexObject.h"
38-
#include "CommonConstants/GeomConstants.h"
39-
#include "Common/Tools/TrackPropagationModule.h"
40-
#include "Common/Tools/StandardCCDBLoader.h"
4142
#include "Framework/O2DatabasePDGPlugin.h"
42-
#include "MetadataHelper.h"
43-
#include "Common/Tools/MultModule.h"
43+
#include "Framework/RunningWorkflowInfo.h"
44+
#include "Framework/runDataProcessing.h"
45+
#include "ReconstructionDataFormats/DCA.h"
4446

4547
using namespace o2;
4648
using namespace o2::framework;
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
#include "Common/DataModel/Multiplicity.h"
2525

2626
#include <Framework/AnalysisDataModel.h>
27+
#include <Framework/AnalysisHelpers.h>
2728
#include <Framework/Configurable.h>
2829
#include <Framework/HistogramSpec.h>
2930

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@
3434
// O2 includes
3535
#include "MetadataHelper.h"
3636
#include "TableHelper.h"
37-
#include "pidTPCBase.h"
3837

3938
#include "Common/CCDB/ctpRateFetcher.h"
4039
#include "Common/Core/PID/TPCPIDResponse.h"
@@ -50,6 +49,7 @@
5049
#include "Framework/AnalysisTask.h"
5150
#include "Framework/runDataProcessing.h"
5251
#include "ReconstructionDataFormats/Track.h"
52+
#include <Framework/AnalysisHelpers.h>
5353

5454
namespace o2::aod
5555
{

0 commit comments

Comments
 (0)