Skip to content
Open
Show file tree
Hide file tree
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
22 changes: 11 additions & 11 deletions PWGLF/DataModel/LFNonPromptCascadeTables.h
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
DECLARE_SOA_COLUMN(MatchingChi2, matchingChi2, float);
DECLARE_SOA_COLUMN(DeltaPtITSCascade, deltaPtITSCascade, float);
DECLARE_SOA_COLUMN(DeltaPtCascade, deltaPtCascade, float);
DECLARE_SOA_COLUMN(ITSClusSize, itsClusSize, float);

Check failure on line 30 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(HasReassociatedCluster, hasReassociatedCluster, bool);
DECLARE_SOA_COLUMN(IsGoodMatch, isGoodMatch, bool);
DECLARE_SOA_COLUMN(IsGoodCascade, isGoodCascade, bool);
Expand Down Expand Up @@ -62,8 +62,8 @@
DECLARE_SOA_COLUMN(BachDCAxy, bachDCAxy, float);
DECLARE_SOA_COLUMN(BachDCAz, bachDCAz, float);

DECLARE_SOA_COLUMN(CascCosPA, casccosPA, float);

Check failure on line 65 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(V0CosPA, v0cosPA, float);

Check failure on line 66 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.

DECLARE_SOA_COLUMN(MassXi, massXi, double);
DECLARE_SOA_COLUMN(MassOmega, massOmega, double);
Expand Down Expand Up @@ -98,13 +98,13 @@
DECLARE_SOA_COLUMN(BachKaonTOFNSigma, bachKaonTOFNSigma, float);
DECLARE_SOA_COLUMN(BachPionTOFNSigma, bachPionTOFNSigma, float);

DECLARE_SOA_COLUMN(gPt, genPt, float);

Check failure on line 101 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(gEta, genEta, float);

Check failure on line 102 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(gPhi, genPhi, float);

Check failure on line 103 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(gVx, genVx, float);

Check failure on line 104 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(gVy, genVy, float);

Check failure on line 105 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(gVz, genVz, float);

Check failure on line 106 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(PDGcode, pdgCode, int);

Check failure on line 107 in PWGLF/DataModel/LFNonPromptCascadeTables.h

View workflow job for this annotation

GitHub Actions / O2 linter

[name/o2-column]

Use UpperCamelCase for names of O2 columns and matching lowerCamelCase names for their getters.
DECLARE_SOA_COLUMN(DCAxMC, dcaXmc, float);
DECLARE_SOA_COLUMN(DCAyMC, dcaYmc, float);
DECLARE_SOA_COLUMN(DCAzMC, dcaZmc, float);
Expand Down Expand Up @@ -195,7 +195,7 @@
NPCascadeTable::CentFT0M,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::ToiMask,
NPCascadeTable::NoSameBunchPileup)
NPCascadeTable::NoSameBunchPileup);

DECLARE_SOA_TABLE(NPCascTableNT, "AOD", "NPCASCTABLENT",
NPCascadeTable::RunNumber,
Expand Down Expand Up @@ -263,7 +263,7 @@
NPCascadeTable::CentFT0M,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::ToiMask,
NPCascadeTable::NoSameBunchPileup)
NPCascadeTable::NoSameBunchPileup);

DECLARE_SOA_TABLE(NPCascTableMC, "AOD", "NPCASCTABLEMC",
NPCascadeTable::RunNumber,
Expand Down Expand Up @@ -350,7 +350,7 @@
NPCascadeTable::MotherDecayDaughters,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::ToiMask,
NPCascadeTable::NoSameBunchPileup)
NPCascadeTable::NoSameBunchPileup);

DECLARE_SOA_TABLE(NPCascTableMCNT, "AOD", "NPCASCTABLEMCNT",
NPCascadeTable::RunNumber,
Expand Down Expand Up @@ -437,7 +437,7 @@
NPCascadeTable::MotherDecayDaughters,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::ToiMask,
NPCascadeTable::NoSameBunchPileup)
NPCascadeTable::NoSameBunchPileup);
DECLARE_SOA_TABLE(NPCascTableGen, "AOD", "NPCASCTABLEGen",
NPCascadeTable::gPt,
NPCascadeTable::gEta,
Expand All @@ -449,21 +449,21 @@
NPCascadeTable::DCAzMC,
NPCascadeTable::IsFromBeauty,
NPCascadeTable::IsFromCharm,
NPCascadeTable::MotherDecayDaughters)
NPCascadeTable::MotherDecayDaughters);
DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
NPCascadeTable::PtGen,
NPCascadeTable::PtRec,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::MultGen);
DECLARE_SOA_TABLE(NPCollisionTable, "AOD", "NPCollisionTABLE",
NPCascadeTable::RunNumber,
NPCascadeTable::GlobalBC,
aod::collision::NumContrib,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::CentFT0M,
NPCascadeTable::MultFT0M);
DECLARE_SOA_TABLE(NPMCChargedTable, "AOD", "NPMCChargedTABLE",
NPCascadeTable::PtGen,
NPCascadeTable::PtRec,
NPCascadeTable::MultNTracksGlobal,
NPCascadeTable::MultGen);
DECLARE_SOA_INDEX_COLUMN_FULL(NPCollision, npCollision, int32_t, NPCollisionTable, "");
DECLARE_SOA_TABLE(NPRecoChargedCandidate, "AOD", "NPRecoChargedCandidate",
DECLARE_SOA_TABLE(NPRecoChargedCand, "AOD", "NPRecoChargedCand",
NPCollisionId,
NPCascadeTable::PtRec);
} // namespace o2::aod
Expand Down
41 changes: 28 additions & 13 deletions PWGLF/Tasks/Strangeness/nonPromptCascade.cxx
Original file line number Diff line number Diff line change
Expand Up @@ -185,7 +185,7 @@ struct NonPromptCascadeTask {
//
Produces<o2::aod::NPCollisionTable> NPCollsTable;
Produces<o2::aod::NPMCChargedTable> NPMCNTable;
Produces<o2::aod::NPRecoChargedCandidate> NPRecoCandTable;
Produces<o2::aod::NPRecoChargedCand> NPRecoCandTable;

using TracksExtData = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
using TracksExtMC = soa::Join<aod::TracksIU, aod::TracksCovIU, aod::TracksExtra, aod::McTrackLabels, aod::pidTPCFullKa, aod::pidTPCFullPi, aod::pidTPCFullPr, aod::pidTOFFullKa, aod::pidTOFFullPi, aod::pidTOFFullPr>;
Expand All @@ -196,6 +196,7 @@ struct NonPromptCascadeTask {

Preslice<TracksExtData> perCollision = aod::track::collisionId;
Preslice<TracksExtMC> perCollisionMC = aod::track::collisionId;
Preslice<TracksWithSel> perCollisionSel = aod::track::collisionId;

HistogramRegistry mRegistry;

Expand All @@ -222,6 +223,7 @@ struct NonPromptCascadeTask {
Configurable<float> cfgMaxMultFV0{"cfgMaxMultFV0", 10000.f, "Upper range of multiplicty FV0 histo"};
Configurable<std::string> cfgPtEdgesdNdeta{"ptEdges", "0,0.2,0.4,0.6,0.8,1,1.2,1.6,2.0,2.4,2.8,3.2,3.6,4,4.5,5,5.5,6,7,8,10", "Pt bin edges (comma-separated)"};
Configurable<int> cfgDownscaleMB{"cfgDownscaleMB", 1, "Downscaling for pile up study sample"};
Configurable<double> cfgEtaCutdNdeta{"cfgEtaCutdNdeta", 0.8, "Eta cut for charged tracks"};

Zorro mZorro;
OutputObj<ZorroSummary> mZorroSummary{"ZorroSummary"};
Expand Down Expand Up @@ -331,8 +333,9 @@ struct NonPromptCascadeTask {
// dN/deta
//
bool runMCdNdeta = context.options().get<bool>("processdNdetaMC");
bool rundNdeta = context.options().get<bool>("processdNdeta");
// std::cout << "runMCdNdeta: " << runMCdNdeta << std::endl;
if (runMCdNdeta) {
if (runMCdNdeta || rundNdeta) {
std::vector<double> ptBins;
std::vector<std::string> tokens = o2::utils::Str::tokenize(cfgPtEdgesdNdeta, ',');
for (auto const& pts : tokens) {
Expand All @@ -344,13 +347,14 @@ struct NonPromptCascadeTask {
}
ptBins.push_back(pt);
}
AxisSpec ptAxisMC{ptBins, "pT MC"};
AxisSpec ptAxisReco{ptBins, "pT Reco"};
AxisSpec ptAxisMC{ptBins, "pT MC"};

// multMeasured, multMC, ptMeasured, ptMC
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRM", "hdNdetaRM", HistType::kTHnSparseF, {nTracksAxisMC, nTracksAxis, ptAxisMC, ptAxisReco});
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRMNotInRecoCol", "hdNdetaRMNotInRecoCol", HistType::kTHnSparseF, {nTracksAxisMC, ptAxisMC});
mRegistrydNdeta.add("hdNdetaRM/hdNdetaRMNotInRecoTrk", "hdNdetaRMNotInRecoTrk", HistType::kTHnSparseF, {nTracksAxisMC, ptAxisMC});
mRegistrydNdeta.add("hdNdetaData", "hdNdetaData", HistType::kTH1F, {nTracksAxis});
}
}

Expand Down Expand Up @@ -810,6 +814,10 @@ struct NonPromptCascadeTask {
aod::McParticles const& mcParticles,
TracksWithLabel const& tracks)
{
//------------------------------------------------------------
// Downscaling output table by BC as there is no pileup in MC
//------------------------------------------------------------
int ds = 1;
//-------------------------------------------------------------
// MC mult for all MC coll
//--------------------------------------------------------------
Expand All @@ -822,7 +830,7 @@ struct NonPromptCascadeTask {
// apply your primary/eta/charge definition here
if (!mcp.isPhysicalPrimary())
continue;
if (std::abs(mcp.eta()) > 0.5f)
if (std::abs(mcp.eta()) > cfgEtaCutdNdeta)
continue;
int q = 0;
if (auto pdg = pdgDB->GetParticle(mcp.pdgCode())) {
Expand Down Expand Up @@ -859,7 +867,7 @@ struct NonPromptCascadeTask {
// ------------------------------------------------------------
std::vector<int> recoMultDense(colls.size(), 0);
for (auto const& trk : tracks) {
if (std::abs(trk.eta()) > 0.5f) {
if (std::abs(trk.eta()) > cfgEtaCutdNdeta) {
continue;
}
const int collRowId = trk.collisionId();
Expand Down Expand Up @@ -887,7 +895,7 @@ struct NonPromptCascadeTask {
// ------------------------------------------------------------
for (auto const& trk : tracks) {
// Accept reco track
if (std::abs(trk.eta()) > 0.5f) {
if (std::abs(trk.eta()) > cfgEtaCutdNdeta) {
continue;
}

Expand Down Expand Up @@ -931,7 +939,7 @@ struct NonPromptCascadeTask {
if (!mcPar.isPhysicalPrimary()) {
continue;
}
if (std::abs(mcPar.eta()) > 0.5f) {
if (std::abs(mcPar.eta()) > cfgEtaCutdNdeta) {
continue;
}

Expand All @@ -952,7 +960,10 @@ struct NonPromptCascadeTask {
const float ptMC = mcPar.pt();

mRegistrydNdeta.fill(HIST("hdNdetaRM/hdNdetaRM"), mult, multReco, ptMC, ptReco);
NPMCNTable(ptMC, ptReco, mult, multReco);
if (ds % cfgDownscaleMB == 0) {
NPMCNTable(ptMC, ptReco, mult, multReco);
}
ds++;
}

// ------------------------------------------------------------
Expand Down Expand Up @@ -983,7 +994,7 @@ struct NonPromptCascadeTask {

PROCESS_SWITCH(NonPromptCascadeTask, processdNdetaMC, "process mc dN/deta", false);
//
void processdNdeta(CollisionCandidatesRun3 const& collisions, TracksWithSel const& tracks)
void processdNdeta(CollisionCandidatesRun3 const& collisions, TracksWithSel const& tracks, aod::BCsWithTimestamps const&)
{
int ds = 1;
uint32_t orbitO = 0;
Expand All @@ -1006,22 +1017,26 @@ struct NonPromptCascadeTask {
mRunNumber = bc.runNumber();
}
NPCollsTable(mRunNumber,
coll.bc().globalBC(),
globalBC,
coll.numContrib(),
coll.multNTracksGlobal(),
coll.centFT0M(),
coll.multFT0M());

auto collIdx = NPCollsTable.lastIndex();
auto tracksThisColl = tracks.sliceBy(perCollision, coll.globalIndex());
auto tracksThisColl = tracks.sliceBy(perCollisionSel, coll.globalIndex());
float multreco = 0.;
// std::cout << "tracks:" << tracksThisColl.size() << std::endl;
for (auto const& track : tracksThisColl) {
if (std::fabs(track.eta()) < 0.8 && track.tpcNClsFound() >= 80 && track.tpcNClsCrossedRows() >= 100) {
// std::cout << track.pt() << " tracks " << track.isGlobalTrack() << std::endl;
if (std::fabs(track.eta()) < cfgEtaCutdNdeta && track.tpcNClsFound() >= 80 && track.tpcNClsCrossedRows() >= 100) {
if (track.isGlobalTrack()) {
// mults.multGlobalTracks++;
multreco++;
NPRecoCandTable(collIdx, track.pt());
}
}
}
mRegistrydNdeta.fill(HIST("hdNdetaData"), multreco);
}
}
}
Expand Down
Loading