Skip to content

Commit d673ddc

Browse files
authored
[PWGLF] Added eta cuts and Nch (#17042)
1 parent 13b7152 commit d673ddc

1 file changed

Lines changed: 40 additions & 28 deletions

File tree

PWGLF/Tasks/Strangeness/v0ptinvmassplots.cxx

Lines changed: 40 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ struct V0PtInvMassPlots {
8989

9090
// Configurable for histograms
9191
Configurable<int> nBins{"nBins", 100, "N bins in all histos"};
92-
Configurable<int> nBinsArmenteros{"nBinsArmenteros", 500, "N bins in Armenteros histos"};
92+
Configurable<int> nBinsArmenteros{"nBinsArmenteros", 600, "N bins in Armenteros histos"};
9393

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

@@ -381,7 +382,8 @@ struct V0PtInvMassPlots {
381382
// NCh Analysis
382383
rNchAnalysis.add("hNchCentralityGenerated", "hNchCentralityGenerated", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality Generated
383384
rNchAnalysis.add("hNchCentralityGeneratedAfterEventSelection", "hNchCentralityGeneratedAfterEventSelection", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality Generated After Event Selection
384-
rNchAnalysis.add("hNchCentrality", "hNchCentrality", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality
385+
rNchAnalysis.add("hNchCentrality", "hNchCentrality", {HistType::kTH2D, {centAxis, nchAxis}});
386+
rNchAnalysis.add("hNchCentralityEtaHalf", "hNchCentralityEtaHalf", {HistType::kTH2D, {centAxis, nchAxis}}); // Nch vs Centrality EtaHalfCut
385387
}
386388

387389
// Event selection function
@@ -432,30 +434,39 @@ struct V0PtInvMassPlots {
432434
{
433435
rMCCorrections.fill(HIST("hGenPartcles"), 0.5, mcCollision.centFT0M());
434436
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(1, "All Gen Particles");
435-
if (!particle.isPhysicalPrimary()) { // Daughters Pseudorapidity Cut
437+
if (!particle.isPhysicalPrimary()) {
436438
return false;
437439
}
438440
rMCCorrections.fill(HIST("hGenPartcles"), 1.5, mcCollision.centFT0M());
439441
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(2, "Physical Primary");
442+
440443
if (!particle.producedByGenerator()) {
441444
return false;
442445
}
443446
rMCCorrections.fill(HIST("hGenPartcles"), 2.5, mcCollision.centFT0M());
444447
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(3, "Produced by Generator");
445-
if (std::abs(particle.eta()) > etagen) { // Eta cut
446-
return false;
447-
}
448-
rMCCorrections.fill(HIST("hGenPartcles"), 3.5, mcCollision.centFT0M());
449-
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(4, "Eta Cut");
450448
auto pdgParticle = pdgDB->GetParticle(particle.pdgCode());
451449
if (pdgParticle == nullptr) {
452450
return false;
453451
}
454452
if (std::abs(pdgParticle->Charge()) < 3) {
455453
return false;
456454
}
457-
rMCCorrections.fill(HIST("hGenPartcles"), 4.5, mcCollision.centFT0M());
455+
rMCCorrections.fill(HIST("hGenPartcles"), 3.5, mcCollision.centFT0M());
458456
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(4, "Charge Cut");
457+
458+
// Standard eta cut
459+
if (std::abs(particle.eta()) > etagen) {
460+
return false;
461+
}
462+
rMCCorrections.fill(HIST("hGenPartcles"), 4.5, mcCollision.centFT0M());
463+
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(5, "Eta Cut");
464+
// Stricter eta cut
465+
if (std::abs(particle.eta()) > etagenstrict) {
466+
return false;
467+
}
468+
rMCCorrections.fill(HIST("hGenPartcles"), 5.5, mcCollision.centFT0M());
469+
rMCCorrections.get<TH2>(HIST("hGenPartcles"))->GetXaxis()->SetBinLabel(6, "Strict Eta Cut");
459470
return true;
460471
}
461472

@@ -601,7 +612,7 @@ struct V0PtInvMassPlots {
601612
rPtAnalysis.fill(HIST("hNLambda"), 4.5, collision.centFT0M());
602613
rPtAnalysis.get<TH2>(HIST("hNLambda"))->GetXaxis()->SetBinLabel(5, "Max_ct");
603614
rPtAnalysis.fill(HIST("hMassLambdavsCuts"), 4.5, v0.mLambda());
604-
if (doLambdaArmenterosCut && v0.qtarm() < (lambdaparamArmenterosCut * std::abs(v0.alpha()))) { // Lambda Armenteros Cut
615+
if (doLambdaArmenterosCut && (v0.alpha() <= 0 || v0.qtarm() > lambdaparamArmenterosCut * v0.alpha())) { // Lambda Armenteros Cut
605616
return false;
606617
}
607618
rPtAnalysis.fill(HIST("hNLambda"), 5.5, collision.centFT0M());
@@ -683,7 +694,7 @@ struct V0PtInvMassPlots {
683694
rPtAnalysis.fill(HIST("hNAntiLambda"), 4.5, collision.centFT0M());
684695
rPtAnalysis.get<TH2>(HIST("hNAntiLambda"))->GetXaxis()->SetBinLabel(5, "Max_ct");
685696
rPtAnalysis.fill(HIST("hMassAntiLambdavsCuts"), 4.5, v0.mAntiLambda());
686-
if (doAntilambdaArmenterosCut && (v0.qtarm() < (antilambdaparamArmenterosCut * std::abs(v0.alpha())))) { // AntiLambda Armenteros Cut
697+
if (doAntilambdaArmenterosCut && (v0.alpha() > 0 || v0.qtarm() > antilambdaparamArmenterosCut * std::abs(v0.alpha()))) { // AntiLambda Armenteros Cut
687698
return false;
688699
}
689700
rPtAnalysis.fill(HIST("hNAntiLambda"), 5.5, collision.centFT0M());
@@ -782,12 +793,12 @@ struct V0PtInvMassPlots {
782793
isINELgt0 = true;
783794
rMCCorrections.fill(HIST("hNEvents_Corrections"), 1.5, mcCollision.centFT0M()); // Event Efficiency Denominator
784795
}
785-
int NParticlesPerCollision = 0; // Counter for the number of particles per collision for the Nch analysis
796+
int nParticlesPerCollision = 0; // Counter for the number of particles per collision for the Nch analysis
786797
// Particles (of interest) Generated Pt Spectrum and Signal Loss Denominator Loop
787798
for (const auto& mcParticle : mcParticles) {
788-
if (std::abs(mcParticle.y()) < rapidityCut) {
789-
if (mcParticle.isPhysicalPrimary()) {
790-
if (isINELgt0) {
799+
if (isINELgt0) {
800+
if (std::abs(mcParticle.y()) < rapidityCut) {
801+
if (mcParticle.isPhysicalPrimary()) {
791802
rMCCorrections.fill(HIST("GenParticleRapidity"), mcParticle.y());
792803
if (mcParticle.pdgCode() == kK0Short) // K0sh matched
793804
{
@@ -829,14 +840,14 @@ struct V0PtInvMassPlots {
829840
{
830841
rMCCorrections.fill(HIST("hPhiGeneratedPtSpectrum"), mcParticle.pt(), mcCollision.centFT0M());
831842
}
832-
if (acceptGeneratedParticle(mcParticle, mcCollision)) {
833-
NParticlesPerCollision++;
834-
}
835843
}
836844
}
845+
if (acceptGeneratedParticle(mcParticle, mcCollision)) {
846+
nParticlesPerCollision++;
847+
}
837848
}
838849
} // End of MCParticle Loop
839-
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), NParticlesPerCollision);
850+
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), nParticlesPerCollision);
840851

841852
// Signal Loss Numenator Loop
842853

@@ -850,7 +861,7 @@ struct V0PtInvMassPlots {
850861
rMCCorrections.fill(HIST("hNEvents_Corrections"), 3.5, mcCollision.centFT0M()); // Event Split Numerator
851862
recoCollINEL++;
852863
if (collision.isInelGt0()) { // Check if the reconstructed collision fulfills the INEL>0 requirement
853-
rMCCorrections.fill(HIST("hNEvents_Corrections"), 4.5, mcCollision.centFT0M()); // Event Split Denominator??????????????
864+
rMCCorrections.fill(HIST("hNEvents_Corrections"), 4.5, mcCollision.centFT0M()); // Event Split Denominator
854865
recoCollINELgt0++;
855866
}
856867
}
@@ -860,19 +871,18 @@ struct V0PtInvMassPlots {
860871
return;
861872
}
862873
if (recoCollINELgt0 > 0) {
863-
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator??????????
874+
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator
864875
}
865876

866877
// Singnal Loss Numerator Loop
867-
for (auto& mcParticle : mcParticles) {
878+
for (const auto& mcParticle : mcParticles) {
868879
if (!mcParticle.isPhysicalPrimary()) {
869880
continue;
870881
}
871-
if (std::abs(mcParticle.y()) > 0.5f) {
882+
if (std::abs(mcParticle.y()) > rapidityCut) {
872883
continue;
873884
}
874885
if (recoCollINELgt0 > 0) {
875-
rMCCorrections.fill(HIST("hNEvents_Corrections"), 6.5, mcCollision.centFT0M());
876886
if (mcParticle.pdgCode() == kK0Short) // K0sh matched
877887
{
878888
rMCCorrections.fill(HIST("hK0shGeneratedRecoPtSpectrum"), mcParticle.pt(), mcCollision.centFT0M());
@@ -955,8 +965,9 @@ struct V0PtInvMassPlots {
955965
if (!acceptEvent(collision)) { // Event Selection
956966
return;
957967
}
958-
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, mcCollision.centFT0M()); // Event Split Numenator
959-
rNchAnalysis.fill(HIST("hNchCentrality"), mcCollision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
968+
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, mcCollision.centFT0M()); // Event Split Numenator
969+
rNchAnalysis.fill(HIST("hNchCentrality"), mcCollision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
970+
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), mcCollision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
960971
for (const auto& v0 : V0s) {
961972
// 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)
962973
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();
@@ -1113,8 +1124,9 @@ struct V0PtInvMassPlots {
11131124
if (!acceptEvent(collision)) { // Event Selection
11141125
return;
11151126
}
1116-
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, collision.centFT0M()); // Number of recorded events
1117-
rNchAnalysis.fill(HIST("hNchCentrality"), collision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
1127+
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, collision.centFT0M()); // Number of recorded events
1128+
rNchAnalysis.fill(HIST("hNchCentrality"), collision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
1129+
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), collision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
11181130
for (const auto& v0 : V0s) {
11191131
// 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)
11201132
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();

0 commit comments

Comments
 (0)