Skip to content
Merged
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
88 changes: 83 additions & 5 deletions PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
#include "PWGLF/DataModel/LFStrangenessTables.h"

#include "Common/CCDB/EventSelectionParams.h"
#include "Common/Core/TrackSelection.h"
#include "Common/Core/TrackSelectionDefaults.h"
Comment on lines +21 to +22

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

None of these headers is used. Why did you add them?

#include "Common/DataModel/Centrality.h"
#include "Common/DataModel/EventSelection.h"
#include "Common/DataModel/McCollisionExtra.h"
Expand Down Expand Up @@ -127,8 +129,7 @@
TrackSelectionFlags::kTPCNCls |
TrackSelectionFlags::kTPCCrossedRowsOverNCls |
TrackSelectionFlags::kTPCChi2NDF;
static constexpr TrackSelectionFlags::flagtype TrackSelectionDca =
TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy;
// static constexpr TrackSelectionFlags::flagtype TrackSelectionDca = TrackSelectionFlags::kDCAz | TrackSelectionFlags::kDCAxy;
static constexpr TrackSelectionFlags::flagtype TrackSelectionDcaxyOnly =
TrackSelectionFlags::kDCAxy;

Expand Down Expand Up @@ -159,7 +160,7 @@

Configurable<float> etaRange{"etaRange", 1.0f, "Eta range to consider"};
Configurable<float> vtxRange{"vtxRange", 10.0f, "Vertex Z range to consider"};
Configurable<float> dcaZ{"dcaZ", 0.2f, "Custom DCA Z cut (ignored if negative)"};
Configurable<float> dcaZ{"dcaZ", 0.2f, "Custom DCA Z cut"};
Configurable<float> v0radiusK0SCut{"v0radiusK0SCut", 1.2f, "K0S RadiusCut"};
Configurable<float> dcapostopvK0SCut{"dcapostopvK0SCut", 0.05f, "K0S dcapostopvCut"};
Configurable<float> dcanegtopvK0SCut{"dcanegtopvK0SCut", 0.05f, "K0S dcanegtopvCut"};
Expand Down Expand Up @@ -218,6 +219,14 @@
Configurable<bool> selectCollidingBCs{"selectCollidingBCs", true, "BC analysis: select colliding BCs"};
Configurable<bool> selectTVX{"selectTVX", true, "BC analysis: select TVX"};
Configurable<bool> selectFV0OrA{"selectFV0OrA", true, "BC analysis: select FV0OrA"};
Configurable<bool> isApplyDCAstandardcuts{"isApplyDCAstandardcuts", true, "Apply DCA standard run 2 cuts"};
Configurable<bool> isApplyDCAcustomcuts{"isApplyDCAcustomcuts", false, "Apply DCA custom cuts"};
Configurable<float> cDcazP0{"cDcazP0", 1.0f, "dcaz parameter0"};
Configurable<float> cDcazP1{"cDcazP1", 1.0f, "dcaz parameter1"};
Configurable<float> cDcazP2{"cDcazP2", 1.0f, "dcaz parameter2"};
Configurable<float> cDcaxyP0{"cDcaxyP0", 1.0f, "dcaxy parameter0"};
Configurable<float> cDcaxyP1{"cDcaxyP1", 1.0f, "dcaxy parameter1"};
Configurable<float> cDcaxyP2{"cDcaxyP2", 1.0f, "dcaxy parameter2"};

void init(InitContext const&)
{
Expand Down Expand Up @@ -250,6 +259,18 @@
x->SetBinLabel(9, "ApplyNoHighMultCollInPrevRof");
x->SetBinLabel(10, "INEL > 0");

if (doprocessDCAvsptData) {
histos.add("hdcaxyvspt", "dca to pv in the xy plane", kTH2D, {dcaAxis, axisPt}, false);
histos.add("hdcazvspt", "dca to pv in the z axis", kTH2D, {dcaAxis, axisPt}, false);
}

if (doprocessDCAvsptMC) {
histos.add("hdcaxyvsptMC", "dca to pv in the xy plane MC", kTH2D, {dcaAxis, axisPt}, false);
histos.add("hdcazvsptMC", "dca to pv in the z axis MC", kTH2D, {dcaAxis, axisPt}, false);
histos.add("hdcaxyvsptMCprimary", "dca to pv in the xy plane MC primary particles", kTH2D, {dcaAxis, axisPt}, false);
histos.add("hdcazvsptMCprimary", "dca to pv in the z axis MC primary particles", kTH2D, {dcaAxis, axisPt}, false);
}

if (doprocessData) {
histos.add("hdcaxy", "dca to pv in the xy plane", kTH1D, {dcaAxis}, false);
histos.add("hdcaz", "dca to pv in the z axis", kTH1D, {dcaAxis}, false);
Expand Down Expand Up @@ -484,6 +505,12 @@
template <typename CheckTrack>
bool isTrackSelected(CheckTrack const& track)
{
if (isApplyDCAcustomcuts) {
if (std::abs(track.dcaXY()) > cDcaxyP0 + cDcaxyP1 / pow(track.pt(), cDcaxyP2))

Check failure on line 509 in PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return false;
if (std::abs(track.dcaZ()) > cDcazP0 + cDcazP1 / pow(track.pt(), cDcazP2))

Check failure on line 511 in PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[std-prefix]

Use std:: prefix for names from the std namespace.
return false;
}
if (std::abs(track.eta()) >= etaRange) {
return false;
}
Expand Down Expand Up @@ -522,8 +549,57 @@
ncheckbit(aod::track::trackCutFlag, TrackSelectionIts) &&
ifnode(ncheckbit(aod::track::v001::detectorMap, (uint8_t)o2::aod::track::TPC),
ncheckbit(aod::track::trackCutFlag, TrackSelectionTpc), true) &&
ifnode(dcaZ.node() > 0.f, nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly),
ncheckbit(aod::track::trackCutFlag, TrackSelectionDca));
ifnode(isApplyDCAstandardcuts.node(), nabs(aod::track::dcaZ) <= dcaZ && ncheckbit(aod::track::trackCutFlag, TrackSelectionDcaxyOnly), true);

void processDCAvsptData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks)
{
if (!isEventSelected(cols)) {
return;
}

for (const auto& track : tracks) {

if (!isTrackSelected(track))
continue;

histos.fill(HIST("hdcaxyvspt"), track.dcaXY(), track.pt());
histos.fill(HIST("hdcazvspt"), track.dcaZ(), track.pt());
}
}

void processDCAvsptMC(soa::Join<CollisionMCTrueTable, aod::McCollsExtra>::iterator const& mcCollision, CollisionMCRecTable const& RecCols, TrackMCTrueTable const&, FilTrackMCRecTable const& RecTracks)
{

for (const auto& RecCol : RecCols) {
if (!isEventSelected(RecCol)) {
continue;
}
if (RecCol.globalIndex() != mcCollision.bestCollisionIndex()) {
continue;
}

auto recTracksPart = RecTracks.sliceBy(perCollision, RecCol.globalIndex());

for (const auto& Rectrack : recTracksPart) {

if (!isTrackSelected(Rectrack))
continue;

if (!Rectrack.has_mcParticle())
continue;

histos.fill(HIST("hdcaxyvsptMC"), Rectrack.dcaXY(), Rectrack.pt());
histos.fill(HIST("hdcazvsptMC"), Rectrack.dcaZ(), Rectrack.pt());

auto mcpart = Rectrack.mcParticle();

if (!isGenTrackSelected(mcpart)) {
histos.fill(HIST("hdcaxyvsptMCprimary"), Rectrack.dcaXY(), Rectrack.pt());
histos.fill(HIST("hdcazvsptMCprimary"), Rectrack.dcaZ(), Rectrack.pt());
}
}
}
}

void processData(CollisionDataTable::iterator const& cols, FilTrackDataTable const& tracks)
{
Expand Down Expand Up @@ -771,10 +847,10 @@
if (std::abs(particle.eta()) < 1.0) {
multBarrelEta10++;
}
if (-3.3 < particle.eta() && particle.eta() < -2.1) {

Check failure on line 850 in PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
multFT0C++;
}
if (3.5 < particle.eta() && particle.eta() < 4.9) {

Check failure on line 853 in PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
multFT0A++;
}
}
Expand Down Expand Up @@ -1020,7 +1096,7 @@
if (selectFV0OrA && !multbc.multFV0OrA())
return;
histos.fill(HIST("BcHist"), 4); // FV0OrA
if (vtxRange < 100.0f) {

Check failure on line 1099 in PWGLF/Tasks/GlobalEventProperties/heavyionMultiplicity.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[magic-number]

Avoid magic numbers in expressions. Assign the value to a clearly named variable or constant.
if (!multbc.multFT0PosZValid())
return;
if (TMath::Abs(multbc.multFT0PosZ()) > vtxRange)
Expand All @@ -1033,6 +1109,8 @@
histos.fill(HIST("BcCentFT0MHist"), multbc.centFT0M());
}

PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptData, "process DCA data", false);
PROCESS_SWITCH(HeavyionMultiplicity, processDCAvsptMC, "process DCA MC", false);
PROCESS_SWITCH(HeavyionMultiplicity, processData, "process data CentFT0C", false);
PROCESS_SWITCH(HeavyionMultiplicity, processCorrelation, "do correlation study in data", false);
PROCESS_SWITCH(HeavyionMultiplicity, processMonteCarlo, "process MC CentFT0C", false);
Expand Down
Loading