Skip to content

Commit c4b4883

Browse files
committed
Update ALICE3 centrality task
1 parent bfeb508 commit c4b4883

2 files changed

Lines changed: 27 additions & 27 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: 26 additions & 26 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"
@@ -25,6 +27,7 @@
2527
#include <Framework/InitContext.h>
2628
#include <Framework/OutputObjHeader.h>
2729
#include <Framework/runDataProcessing.h>
30+
#include <Framework/Expressions.h>
2831

2932
#include <TH1.h>
3033
#include <TString.h>
@@ -36,63 +39,60 @@ using namespace o2;
3639
using namespace o2::framework;
3740
using namespace o2::framework::expressions;
3841

39-
struct ALICE3Centrality {
42+
constexpr float DefaultMult = 10000.0f;
43+
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> maxMult{"maxMult", 10000.0f, "Maximum multiplicity in range"};
53+
Configurable<float> maxDCA{"maxDCA", 0.0025f, "Max DCAxy and DCAz for counted tracks"};
54+
Configurable<float> vtxZ{"vtxZ", 10.0f, "Max event vertex z position allowed"};
55+
Configurable<int> minNumContrib{"minNumContrib", 1, "Minimum required number of primary vertex contributors"};
56+
Configurable<std::string> ccdbUrl{"ccdbUrl", "http://alice-ccdb.cern.ch", "url of the ccdb repository"};
57+
58+
Filter trackFilter = (aod::track::eta >= minEta) && (aod::track::eta <= maxEta) && (nabs(aod::track::dcaXY) <= maxDCA) && (nabs(aod::track::dcaZ) <= maxDCA);
4959

5060
bool centralityLoaded = false;
5161
TH1D* hCumMultALICE3 = nullptr;
5262

5363
void init(InitContext&)
5464
{
55-
const AxisSpec axisMult{MaxMult.value > 10000.f ? 10000 : (int)MaxMult, 0, MaxMult, "Reconstructed tracks"};
65+
const AxisSpec axisMult{maxMult.value > DefaultMult ? (int)DefaultMult : (int)maxMult, 0, maxMult, "Reconstructed tracks"};
5666
const AxisSpec axisCent{150, 0, 150, "Percentile"};
57-
TString tit = Form("%.3f < #it{#eta} < %.3f", MinEta.value, MaxEta.value);
67+
TString tit = Form("%.3f < #it{#eta} < %.3f", minEta.value, maxEta.value);
5868
histos.add("centrality/numberOfTracks", tit, kTH1D, {axisMult});
5969
histos.add("centrality/centralityDistribution", "Centrality test", kTH1D, {axisCent});
6070

61-
ccdb->setURL(url.value);
71+
ccdb->setURL(ccdbUrl.value);
6272
ccdb->setCaching(true);
6373
ccdb->setLocalObjectValidityChecking();
6474
}
6575

66-
int nevs = 0;
67-
void process(const o2::aod::Collision& collision, const soa::Join<aod::Tracks, aod::TracksDCA>& tracks)
76+
void process(const o2::aod::Collision& collision, const soa::Filtered<soa::Join<aod::Tracks, aod::TracksDCA>>& tracks)
6877
{
6978
if (!centralityLoaded) {
70-
hCumMultALICE3 = ccdb->getForTimeStamp<TH1D>("Analysis/ALICE3/Centrality", 1);
79+
hCumMultALICE3 = ccdb->getForTimeStamp<TH1D>("Analysis/ALICE3/Centrality", ccdbNoLaterThan.value);
7180
centralityLoaded = true;
7281
LOGF(info, "ALICE 3 centrality calibration loaded!");
7382
}
7483

75-
int nTracks = 0;
76-
if (collision.numContrib() < 1) {
84+
if (collision.numContrib() < minNumContrib.value) {
7785
histos.fill(HIST("centrality/centralityDistribution"), 101);
7886
cent(101);
7987
return;
8088
}
81-
if (fabs(collision.posZ()) > 10) {
89+
if (std::fabs(collision.posZ()) > vtxZ.value) {
8290
histos.fill(HIST("centrality/centralityDistribution"), 102);
8391
cent(102);
8492
return;
8593
}
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";
94+
95+
const auto nTracks = tracks.size();
9696
histos.fill(HIST("centrality/numberOfTracks"), nTracks);
9797

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

104104
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)
105105
{
106-
return WorkflowSpec{adaptAnalysisTask<ALICE3Centrality>(cfgc, TaskName{"alice3-centrality"})};
106+
return WorkflowSpec{adaptAnalysisTask<Alice3Centrality>(cfgc)};
107107
}

0 commit comments

Comments
 (0)