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
114 changes: 62 additions & 52 deletions PWGLF/Tasks/Nuspex/nucleitpcpbpb.cxx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// Copyright 2019-2020 CERN and copyright holders of ALICE O2.

Check failure on line 1 in PWGLF/Tasks/Nuspex/nucleitpcpbpb.cxx

View workflow job for this annotation

GitHub Actions / O2 linter

[name/workflow-file]

Name of a workflow file must match the name of the main struct in it (without the PWG prefix). (Class implementation files should be in "Core" directories.)
// See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
// All rights not expressly granted are reserved.
//
Expand Down Expand Up @@ -111,6 +111,9 @@
Configurable<bool> cfgRigidityCorrection{"cfgRigidityCorrection", false, "apply rigidity correction"};
// Track Selection Cuts
Configurable<float> cfgCutEta{"cfgCutEta", 0.9f, "Eta range for tracks"};
Configurable<bool> cfgetaRequire{"cfgetaRequire", true, "eta cut require"};
Configurable<bool> cfgetaRequireMC{"cfgetaRequireMC", true, "eta cut require for generated particles"};
Configurable<bool> cfgrapidityRequireMC{"cfgrapidityRequireMC", true, "rapidity cut require for generated particles"};
Configurable<bool> cfgUsePVcontributors{"cfgUsePVcontributors", true, "use tracks that are PV contibutors"};
Configurable<bool> cfgITSrequire{"cfgITSrequire", true, "Additional cut on ITS require"};
Configurable<bool> cfgTPCrequire{"cfgTPCrequire", true, "Additional cut on TPC require"};
Expand Down Expand Up @@ -146,6 +149,9 @@
Configurable<float> centcut{"centcut", 80.0f, "centrality cut"};
Configurable<float> cfgCutRapidity{"cfgCutRapidity", 0.5f, "Rapidity range"};
Configurable<float> cfgZvertex{"cfgZvertex", 10, "Min Z Vertex"};
Configurable<bool> cfgZvertexRequire{"cfgZvertexRequire", true, "Pos Z cut require"};
Configurable<bool> cfgZvertexRequireMC{"cfgZvertexRequireMC", true, "Pos Z cut require for generated particles"};
Configurable<bool> cfgsel8Require{"cfgsel8Require", true, "sel8 cut require"};
Configurable<float> cfgITSnsigma{"cfgITSnsigma", 5, "Max ITS nsigma value"};
Configurable<float> cfgtpcNClsFound{"cfgtpcNClsFound", 100.0f, "min. no. of tpcNClsFound"};
Configurable<float> cfgitsNCls{"cfgitsNCls", 2.0f, "min. no. of itsNCls"};
Expand Down Expand Up @@ -232,6 +238,7 @@

if (doprocessMC) {
histomc.add("histVtxZgen", "histVtxZgen", kTH1F, {axisVtxZ});
histomc.add("ImptParameter", "ImptParameter", kTH1F, {axisImpt});
histomc.add("histEtagen", "histEtagen", kTH1F, {axiseta});
histomc.add("histPtgenHe3", "histPtgenHe3", kTH1F, {ptAxis});
histomc.add("histPtgenAntiHe3", "histPtgenAntiHe3", kTH1F, {ptAxis});
Expand Down Expand Up @@ -266,7 +273,7 @@
continue;
if (!track.passedTPCRefit() && cfgPassedTPCRefit)
continue;
if (std::abs(track.eta()) > cfgCutEta)
if (std::abs(track.eta()) > cfgCutEta && cfgetaRequire)
continue;
for (size_t i = 0; i < primaryParticles.size(); i++) {
if (std::abs(getRapidity(track, i)) > cfgCutRapidity && cfgRapidityRequire)
Expand Down Expand Up @@ -326,12 +333,12 @@
if ((getRigidity(track) > cfgTrackPIDsettings->get(i, "TOFrequiredabove") && (tofMasses < cfgTrackPIDsettings->get(i, "minTOFmass") || tofMasses > cfgTrackPIDsettings->get(i, "maxTOFmass"))) && cfgmassRequire)
continue;
fillhmass(track, i);
if (cfgRequirebetaplot) {
histos.fill(HIST("Tofsignal"), getRigidity(track) * track.sign(), o2::pid::tof::Beta::GetBeta(track));
}
filldedx(track, nParticles);
}
histos.fill(HIST("histeta"), track.eta());
if (cfgRequirebetaplot) {
histos.fill(HIST("Tofsignal"), getRigidity(track), o2::pid::tof::Beta::GetBeta(track));
}
filldedx(track, nParticles);
} // track loop
}
//----------------------------------------------------------------------------------------------------------------
Expand Down Expand Up @@ -380,18 +387,19 @@
mcCollInfos.resize(mcCollisions.size());
// ----------------------------- Generated particles loop -----------------------------
for (auto const& mcColl : mcCollisions) {
if (std::abs(mcColl.posZ()) > cfgZvertex)
if (std::abs(mcColl.posZ()) > cfgZvertex && cfgZvertexRequireMC)
continue;
histomc.fill(HIST("histVtxZgen"), mcColl.posZ());
histomc.fill(HIST("ImptParameter"), mcColl.impactParameter());
for (auto const& mcParticle : particlesMC) {
if (mcParticle.mcCollisionId() != mcColl.globalIndex())
continue;
if (!mcParticle.isPhysicalPrimary())
continue;
int pdgCode = mcParticle.pdgCode();
if (std::abs(mcParticle.y()) > cfgCutRapidity)
if (std::abs(mcParticle.y()) > cfgCutRapidity && cfgrapidityRequireMC)
continue;
if (std::abs(mcParticle.eta()) > cfgCutEta)
if (std::abs(mcParticle.eta()) > cfgCutEta && cfgetaRequireMC)
continue;
histomc.fill(HIST("histEtagen"), mcParticle.eta());
float ptScaled = mcParticle.pt();
Expand All @@ -415,9 +423,11 @@
initCCDB(bc);
collHasCandidate = false;
histomc.fill(HIST("histNevReco"), 0.5);
collPassedEvSel = collision.sel8() && std::abs(collision.posZ()) < cfgZvertex;
if (std::abs(collision.posZ()) > cfgZvertex && cfgZvertexRequire)
continue;
collPassedEvSel = collision.sel8();
occupancy = collision.trackOccupancyInTimeRange();
if (!collPassedEvSel)
if (!collPassedEvSel && cfgsel8Require)
continue;
histomc.fill(HIST("histNevReco"), 1.5);
histomc.fill(HIST("histVtxZReco"), collision.posZ());
Expand Down Expand Up @@ -456,7 +466,7 @@
continue;
if (!track.passedTPCRefit() && cfgPassedTPCRefit)
continue;
if (std::abs(track.eta()) > cfgCutEta)
if (std::abs(track.eta()) > cfgCutEta && cfgetaRequire)
continue;
if (!matchedMCParticle.isPhysicalPrimary())
continue;
Expand Down Expand Up @@ -519,52 +529,52 @@
if ((getRigidity(track) > cfgTrackPIDsettings->get(i, "TOFrequiredabove") && (tofMasses < cfgTrackPIDsettings->get(i, "minTOFmass") || tofMasses > cfgTrackPIDsettings->get(i, "maxTOFmass"))) && cfgmassRequire)
continue;
fillhmass(track, i);
}
histos.fill(HIST("histeta"), track.eta());
if (cfgRequirebetaplot) {
histos.fill(HIST("Tofsignal"), getRigidity(track), o2::pid::tof::Beta::GetBeta(track));
}
filldedx(track, nParticles);
/*----------------------------------------------------------------------------------------------------------------*/
float ptReco;
setTrackParCov(track, mTrackParCov);
mTrackParCov.setPID(track.pidForTracking());
ptReco = (std::abs(pdg) == particlePdgCodes.at(4) || std::abs(pdg) == particlePdgCodes.at(5)) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
if (pdg == -particlePdgCodes.at(5) && cfgmccorrectionhe4Require) {
ptReco = ptReco + 0.00765 + 0.503791 * std::exp(-1.10517 * ptReco);
}
if (cfgRequirebetaplot) {
histos.fill(HIST("Tofsignal"), getRigidity(track) * track.sign(), o2::pid::tof::Beta::GetBeta(track));
}
filldedx(track, nParticles);
/*----------------------------------------------------------------------------------------------------------------*/
float ptReco;
mTrackParCov.setPID(track.pidForTracking());
ptReco = (std::abs(pdg) == particlePdgCodes.at(4) || std::abs(pdg) == particlePdgCodes.at(5)) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
if (pdg == -particlePdgCodes.at(5) && cfgmccorrectionhe4Require) {
ptReco = ptReco + 0.00765 + 0.503791 * std::exp(-1.10517 * ptReco);
}

if (pdg == -particlePdgCodes.at(4) && cfgmccorrectionhe4Require) {
int pidGuess = track.pidForTracking();
int antitriton = 6;
if (pidGuess == antitriton) {
ptReco = ptReco - 0.464215 + 0.195771 * ptReco - 0.0183111 * ptReco * ptReco;
// LOG(info) << "we have he3" << pidGuess;
if (pdg == -particlePdgCodes.at(4) && cfgmccorrectionhe4Require) {
int pidGuess = track.pidForTracking();
int antitriton = 6;
if (pidGuess == antitriton) {
ptReco = ptReco - 0.464215 + 0.195771 * ptReco - 0.0183111 * ptReco * ptReco;
// LOG(info) << "we have he3" << pidGuess;
}
}
}
float ptGen = matchedMCParticle.pt();
float deltaPt = ptReco - ptGen;
float ptGen = matchedMCParticle.pt();
float deltaPt = ptReco - ptGen;

if (pdg == -particlePdgCodes.at(4)) {
histomc.fill(HIST("histDeltaPtVsPtGen"), ptReco, deltaPt);
histomc.fill(HIST("histPIDtrack"), ptReco, track.pidForTracking());
}
if (pdg == -particlePdgCodes.at(5)) {
histomc.fill(HIST("histDeltaPtVsPtGenHe4"), ptReco, deltaPt);
}
if (pdg == particlePdgCodes.at(4)) {
histomc.fill(HIST("histPtRecoHe3"), ptReco);
} else if (pdg == -particlePdgCodes.at(4)) {
histomc.fill(HIST("histPtRecoAntiHe3"), ptReco);
} else if (pdg == particlePdgCodes.at(5)) {
histomc.fill(HIST("histPtRecoHe4"), ptReco);
} else if (pdg == -particlePdgCodes.at(5)) {
histomc.fill(HIST("histPtRecoAntiHe4"), ptReco);
if (pdg == -particlePdgCodes.at(4)) {
histomc.fill(HIST("histDeltaPtVsPtGen"), ptReco, deltaPt);
histomc.fill(HIST("histPIDtrack"), ptReco, track.pidForTracking());
}
if (pdg == -particlePdgCodes.at(5)) {
histomc.fill(HIST("histDeltaPtVsPtGenHe4"), ptReco, deltaPt);
}
if (pdg == particlePdgCodes.at(4)) {
histomc.fill(HIST("histPtRecoHe3"), ptReco);
} else if (pdg == -particlePdgCodes.at(4)) {
histomc.fill(HIST("histPtRecoAntiHe3"), ptReco);
} else if (pdg == particlePdgCodes.at(5)) {
histomc.fill(HIST("histPtRecoHe4"), ptReco);
} else if (pdg == -particlePdgCodes.at(5)) {
histomc.fill(HIST("histPtRecoAntiHe4"), ptReco);
}
}
histos.fill(HIST("histeta"), track.eta());
/*----------------------------------------------------------------------------------------------------------------*/
} // Track loop
} // Collision loop
}
PROCESS_SWITCH(NucleitpcPbPb, processMC, "MC reco+gen analysis", true);
PROCESS_SWITCH(NucleitpcPbPb, processMC, "MC reco+gen analysis", false);
//-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
void initCCDB(aod::BCsWithTimestamps::iterator const& bc)
{
Expand Down Expand Up @@ -673,9 +683,9 @@
mTrackParCov.setPID(track.pidForTracking());
ptMomn = (species == he3 || species == he4) ? 2 * mTrackParCov.getPt() : mTrackParCov.getPt();
if (track.sign() > 0) {
hmass[2 * species]->Fill(ptMomn, massDiff * massDiff);
hmass[2 * species]->Fill(ptMomn, massDiff);
} else if (track.sign() < 0) {
hmass[2 * species + 1]->Fill(ptMomn, massDiff * massDiff);
hmass[2 * species + 1]->Fill(ptMomn, massDiff);
}
}
//----------------------------------------------------------------------------------------------------------------
Expand Down
Loading