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
68 changes: 40 additions & 28 deletions PWGLF/Tasks/Strangeness/v0ptinvmassplots.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/Strangeness/v0ptinvmassplots.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 @@ -89,7 +89,7 @@

// Configurable for histograms
Configurable<int> nBins{"nBins", 100, "N bins in all histos"};
Configurable<int> nBinsArmenteros{"nBinsArmenteros", 500, "N bins in Armenteros histos"};
Configurable<int> nBinsArmenteros{"nBinsArmenteros", 600, "N bins in Armenteros histos"};

// Configurables for Cuts
Configurable<float> cutZVertex{"cutZVertex", 10.0f, "Accepted z-vertex range (cm)"};
Expand All @@ -99,6 +99,7 @@
Configurable<float> compv0masscut{"compv0masscut", 0.01, "CompetitiveV0masscut (GeV)"};
Configurable<float> etadau{"etadau", 0.8, "Eta Daughters"};
Configurable<float> etagen{"etagen", 0.8, "Eta Generated"};
Configurable<float> etagenstrict{"etagenstrict", 0.5, "Strict Eta Generated"};
Configurable<float> rapidityCut{"rapidityCut", 0.5, "V0 Rapidity Window"};
Configurable<float> itsMinHits{"itsMinHits", 1.0, "Minimum Hits of Daughter Tracks in the ITS"};

Expand Down Expand Up @@ -381,7 +382,8 @@
// NCh Analysis
rNchAnalysis.add("hNchCentralityGenerated", "hNchCentralityGenerated", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality Generated
rNchAnalysis.add("hNchCentralityGeneratedAfterEventSelection", "hNchCentralityGeneratedAfterEventSelection", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality Generated After Event Selection
rNchAnalysis.add("hNchCentrality", "hNchCentrality", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality
rNchAnalysis.add("hNchCentrality", "hNchCentrality", {HistType::kTH2D, {centAxis, nchAxis}});
rNchAnalysis.add("hNchCentralityEtaHalf", "hNchCentralityEtaHalf", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality EtaHalfCut
}

// Event selection function
Expand Down Expand Up @@ -432,30 +434,39 @@
{
rMCCorrections.fill(HIST("hGenPartcles"), 0.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(1, "All Gen Particles");
if (!particle.isPhysicalPrimary()) { // Daughters Pseudorapidity Cut
if (!particle.isPhysicalPrimary()) {
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 1.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(2, "Physical Primary");

if (!particle.producedByGenerator()) {
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 2.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(3, "Produced by Generator");
if (std::abs(particle.eta()) > etagen) { // Eta cut
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 3.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(4, "Eta Cut");
auto pdgParticle = pdgDB->GetParticle(particle.pdgCode());
if (pdgParticle == nullptr) {
return false;
}
if (std::abs(pdgParticle->Charge()) < 3) {

Check failure on line 452 in PWGLF/Tasks/Strangeness/v0ptinvmassplots.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.
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 4.5, mcCollision.centFT0M());
rMCCorrections.fill(HIST("hGenPartcles"), 3.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(4, "Charge Cut");

// Standard eta cut
if (std::abs(particle.eta()) > etagen) {
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 4.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(5, "Eta Cut");
// Stricter eta cut
if (std::abs(particle.eta()) > etagenstrict) {
return false;
}
rMCCorrections.fill(HIST("hGenPartcles"), 5.5, mcCollision.centFT0M());
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(6, "Strict Eta Cut");
return true;
}

Expand Down Expand Up @@ -601,7 +612,7 @@
rPtAnalysis.fill(HIST("hNLambda"), 4.5, collision.centFT0M());
rPtAnalysis.get<TH2>(HIST("hNLambda"))->GetXaxis()->SetBinLabel(5, "Max_ct");
rPtAnalysis.fill(HIST("hMassLambdavsCuts"), 4.5, v0.mLambda());
if (doLambdaArmenterosCut && v0.qtarm() < (lambdaparamArmenterosCut * std::abs(v0.alpha()))) { // Lambda Armenteros Cut
if (doLambdaArmenterosCut && (v0.alpha() <= 0 || v0.qtarm() > lambdaparamArmenterosCut * v0.alpha())) { // Lambda Armenteros Cut
return false;
}
rPtAnalysis.fill(HIST("hNLambda"), 5.5, collision.centFT0M());
Expand Down Expand Up @@ -683,7 +694,7 @@
rPtAnalysis.fill(HIST("hNAntiLambda"), 4.5, collision.centFT0M());
rPtAnalysis.get<TH2>(HIST("hNAntiLambda"))->GetXaxis()->SetBinLabel(5, "Max_ct");
rPtAnalysis.fill(HIST("hMassAntiLambdavsCuts"), 4.5, v0.mAntiLambda());
if (doAntilambdaArmenterosCut && (v0.qtarm() < (antilambdaparamArmenterosCut * std::abs(v0.alpha())))) { // AntiLambda Armenteros Cut
if (doAntilambdaArmenterosCut && (v0.alpha() > 0 || v0.qtarm() > antilambdaparamArmenterosCut * std::abs(v0.alpha()))) { // AntiLambda Armenteros Cut
return false;
}
rPtAnalysis.fill(HIST("hNAntiLambda"), 5.5, collision.centFT0M());
Expand Down Expand Up @@ -782,12 +793,12 @@
isINELgt0 = true;
rMCCorrections.fill(HIST("hNEvents_Corrections"), 1.5, mcCollision.centFT0M()); // Event Efficiency Denominator
}
int NParticlesPerCollision = 0; // Counter for the number of particles per collision for the Nch analysis
int nParticlesPerCollision = 0; // Counter for the number of particles per collision for the Nch analysis
// Particles (of interest) Generated Pt Spectrum and Signal Loss Denominator Loop
for (const auto& mcParticle : mcParticles) {
if (std::abs(mcParticle.y()) < rapidityCut) {
if (mcParticle.isPhysicalPrimary()) {
if (isINELgt0) {
if (isINELgt0) {
if (std::abs(mcParticle.y()) < rapidityCut) {
if (mcParticle.isPhysicalPrimary()) {
rMCCorrections.fill(HIST("GenParticleRapidity"), mcParticle.y());
if (mcParticle.pdgCode() == kK0Short) // K0sh matched
{
Expand Down Expand Up @@ -829,14 +840,14 @@
{
rMCCorrections.fill(HIST("hPhiGeneratedPtSpectrum"), mcParticle.pt(), mcCollision.centFT0M());
}
if (acceptGeneratedParticle(mcParticle, mcCollision)) {
NParticlesPerCollision++;
}
}
}
if (acceptGeneratedParticle(mcParticle, mcCollision)) {
nParticlesPerCollision++;
}
}
} // End of MCParticle Loop
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), NParticlesPerCollision);
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), nParticlesPerCollision);

// Signal Loss Numenator Loop

Expand All @@ -850,7 +861,7 @@
rMCCorrections.fill(HIST("hNEvents_Corrections"), 3.5, mcCollision.centFT0M()); // Event Split Numerator
recoCollINEL++;
if (collision.isInelGt0()) { // Check if the reconstructed collision fulfills the INEL>0 requirement
rMCCorrections.fill(HIST("hNEvents_Corrections"), 4.5, mcCollision.centFT0M()); // Event Split Denominator??????????????
rMCCorrections.fill(HIST("hNEvents_Corrections"), 4.5, mcCollision.centFT0M()); // Event Split Denominator
recoCollINELgt0++;
}
}
Expand All @@ -860,19 +871,18 @@
return;
}
if (recoCollINELgt0 > 0) {
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator??????????
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator
}

// Singnal Loss Numerator Loop
for (auto& mcParticle : mcParticles) {
for (const auto& mcParticle : mcParticles) {
if (!mcParticle.isPhysicalPrimary()) {
continue;
}
if (std::abs(mcParticle.y()) > 0.5f) {
if (std::abs(mcParticle.y()) > rapidityCut) {
continue;
}
if (recoCollINELgt0 > 0) {
rMCCorrections.fill(HIST("hNEvents_Corrections"), 6.5, mcCollision.centFT0M());
if (mcParticle.pdgCode() == kK0Short) // K0sh matched
{
rMCCorrections.fill(HIST("hK0shGeneratedRecoPtSpectrum"), mcParticle.pt(), mcCollision.centFT0M());
Expand Down Expand Up @@ -955,8 +965,9 @@
if (!acceptEvent(collision)) { // Event Selection
return;
}
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, mcCollision.centFT0M()); // Event Split Numenator
rNchAnalysis.fill(HIST("hNchCentrality"), mcCollision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, mcCollision.centFT0M()); // Event Split Numenator
rNchAnalysis.fill(HIST("hNchCentrality"), mcCollision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), mcCollision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
for (const auto& v0 : V0s) {
// Checking that the V0 is a true K0s/Lambdas/Antilambdas and then filling the parameter histograms and the invariant mass plots for different cuts (which are taken from namespace)
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();
Expand Down Expand Up @@ -1113,8 +1124,9 @@
if (!acceptEvent(collision)) { // Event Selection
return;
}
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, collision.centFT0M()); // Number of recorded events
rNchAnalysis.fill(HIST("hNchCentrality"), collision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, collision.centFT0M()); // Number of recorded events
rNchAnalysis.fill(HIST("hNchCentrality"), collision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), collision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
for (const auto& v0 : V0s) {
// Checking that the V0 is a true K0s/Lambdas/Antilambdas and then filling the parameter histograms and the invariant mass plots for different cuts (which are taken from namespace)
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();
Expand Down
Loading