Skip to content

Commit 03d4b77

Browse files
axti98alibuild
andauthored
[ALICE3] Update ALICE3 centrality task (#17522)
Co-authored-by: ALICE Action Bot <alibuild@cern.ch>
1 parent 6c690ba commit 03d4b77

2 files changed

Lines changed: 29 additions & 28 deletions

File tree

ALICE3/TableProducer/CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ o2physics_add_dpl_workflow(alice3-trackextension
2222
COMPONENT_NAME Analysis)
2323

2424
o2physics_add_dpl_workflow(alice3-centrality
25-
SOURCES alice3-centrality.cxx
25+
SOURCES alice3Centrality.cxx
2626
PUBLIC_LINK_LIBRARIES O2Physics::AnalysisCore
2727
COMPONENT_NAME Analysis)
2828

ALICE3/TableProducer/alice3-centrality.cxx renamed to ALICE3/TableProducer/alice3Centrality.cxx

Lines changed: 28 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
// or submit itself to any jurisdiction.
1111
/// \author Nicolo' Jacazio <nicolo.jacazio@cern.ch>, CERN
1212
/// \author David Dobrigkeit Chinellato <david.dobrigkeit.chinellato@cern.ch>, UNICAMP/CERN
13+
/// \brief Centrality producer for ALICE3
14+
/// \file alice3Centrality.cxx
1315

1416
#include "Common/DataModel/Centrality.h"
1517
#include "Common/DataModel/TrackSelectionTables.h"
@@ -20,6 +22,7 @@
2022
#include <Framework/AnalysisHelpers.h>
2123
#include <Framework/AnalysisTask.h>
2224
#include <Framework/Configurable.h>
25+
#include <Framework/Expressions.h>
2326
#include <Framework/HistogramRegistry.h>
2427
#include <Framework/HistogramSpec.h>
2528
#include <Framework/InitContext.h>
@@ -30,69 +33,67 @@
3033
#include <TString.h>
3134

3235
#include <cmath>
36+
#include <cstdint>
3337
#include <cstdlib>
38+
#include <string>
3439

3540
using namespace o2;
3641
using namespace o2::framework;
3742
using namespace o2::framework::expressions;
3843

39-
struct ALICE3Centrality {
44+
struct Alice3Centrality {
4045
Produces<aod::CentRun2V0Ms> cent;
4146
Service<o2::ccdb::BasicCCDBManager> ccdb;
4247

4348
HistogramRegistry histos{"Histos", {}, OutputObjHandlingPolicy::AnalysisObject};
44-
Configurable<float> MinEta{"MinEta", -4.0f, "Minimum eta in range"};
45-
Configurable<float> MaxEta{"MaxEta", 4.0f, "Maximum eta in range"};
46-
Configurable<float> MaxMult{"MaxMult", 10000.f, "Maximum multiplicity in range"};
47-
Configurable<float> MaxDCA{"MaxDCA", 0.0025f, "Max DCAxy and DCAz for counted tracks"};
48-
Configurable<std::string> url{"ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
49+
Configurable<int64_t> ccdbNoLaterThan{"ccdbNoLaterThan", 1, "latest acceptable timestamp of creation for the object"};
50+
Configurable<float> minEta{"minEta", -4.0f, "Minimum eta in range"};
51+
Configurable<float> maxEta{"maxEta", 4.0f, "Maximum eta in range"};
52+
Configurable<float> maxDCA{"maxDCA", 0.0025f, "Max DCAxy and DCAz for counted tracks"};
53+
Configurable<float> vtxZ{"vtxZ", 10.0f, "Max event vertex z position allowed"};
54+
Configurable<int> minNumContrib{"minNumContrib", 1, "Minimum required number of primary vertex contributors"};
55+
Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
56+
Configurable<std::string> ccdbPath{"ccdbPath", "Analysis/ALICE3/Centrality", "path to the ccdb object"};
57+
58+
ConfigurableAxis axisMult{"axisMult", {10000, 0, 10000}, "Reconstructed tracks"};
59+
ConfigurableAxis axisCent{"axisCent", {150, 0, 150}, "Percentile"};
60+
61+
Filter trackFilter = (aod::track::eta >= minEta) && (aod::track::eta <= maxEta) && (nabs(aod::track::dcaXY) <= maxDCA) && (nabs(aod::track::dcaZ) <= maxDCA);
4962

5063
bool centralityLoaded = false;
5164
TH1D* hCumMultALICE3 = nullptr;
5265

5366
void init(InitContext&)
5467
{
55-
const AxisSpec axisMult{MaxMult.value > 10000.f ? 10000 : (int)MaxMult, 0, MaxMult, "Reconstructed tracks"};
56-
const AxisSpec axisCent{150, 0, 150, "Percentile"};
57-
TString tit = Form("%.3f < #it{#eta} < %.3f", MinEta.value, MaxEta.value);
68+
TString tit = Form("%.3f < #it{#eta} < %.3f", minEta.value, maxEta.value);
5869
histos.add("centrality/numberOfTracks", tit, kTH1D, {axisMult});
5970
histos.add("centrality/centralityDistribution", "Centrality test", kTH1D, {axisCent});
6071

61-
ccdb->setURL(url.value);
72+
ccdb->setURL(ccdbUrl.value);
6273
ccdb->setCaching(true);
6374
ccdb->setLocalObjectValidityChecking();
6475
}
6576

66-
int nevs = 0;
67-
void process(const o2::aod::Collision& collision, const soa::Join<aod::Tracks, aod::TracksDCA>& tracks)
77+
void process(const o2::aod::Collision& collision, const soa::Filtered<soa::Join<aod::Tracks, aod::TracksDCA>>& tracks)
6878
{
6979
if (!centralityLoaded) {
70-
hCumMultALICE3 = ccdb->getForTimeStamp<TH1D>("Analysis/ALICE3/Centrality", 1);
80+
hCumMultALICE3 = ccdb->getForTimeStamp<TH1D>(ccdbPath.value, ccdbNoLaterThan.value);
7181
centralityLoaded = true;
7282
LOGF(info, "ALICE 3 centrality calibration loaded!");
7383
}
7484

75-
int nTracks = 0;
76-
if (collision.numContrib() < 1) {
85+
if (collision.numContrib() < minNumContrib.value) {
7786
histos.fill(HIST("centrality/centralityDistribution"), 101);
7887
cent(101);
7988
return;
8089
}
81-
if (fabs(collision.posZ()) > 10) {
90+
if (std::fabs(collision.posZ()) > vtxZ.value) {
8291
histos.fill(HIST("centrality/centralityDistribution"), 102);
8392
cent(102);
8493
return;
8594
}
86-
for (const auto& track : tracks) {
87-
if (track.eta() < MinEta || track.eta() > MaxEta) {
88-
continue;
89-
}
90-
if (abs(track.dcaXY()) > MaxDCA || abs(track.dcaZ()) > MaxDCA) {
91-
continue;
92-
}
93-
nTracks++;
94-
}
95-
LOG(info) << nevs++ << ") Event " << collision.globalIndex() << " has " << nTracks << " tracks";
95+
96+
const auto nTracks = tracks.size();
9697
histos.fill(HIST("centrality/numberOfTracks"), nTracks);
9798

9899
float centALICE3 = hCumMultALICE3->GetBinContent(hCumMultALICE3->FindBin(nTracks));
@@ -103,5 +104,5 @@ struct ALICE3Centrality {
103104

104105
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
105106
{
106-
return WorkflowSpec{adaptAnalysisTask<ALICE3Centrality>(cfgc, TaskName{"alice3-centrality"})};
107+
return WorkflowSpec{adaptAnalysisTask<Alice3Centrality>(cfgc)};
107108
}

0 commit comments

Comments
 (0)