Skip to content

Commit bd05569

Browse files
committed
Added Nch plots and corrected Nch cuts
1 parent 58af9bf commit bd05569

1 file changed

Lines changed: 37 additions & 24 deletions

File tree

PWGLF/Tasks/Strangeness/v0ptinvmassplots.cxx

Lines changed: 37 additions & 24 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,15 @@ 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+
{
847+
nParticlesPerCollision++;
848+
}
837849
}
838850
} // End of MCParticle Loop
839-
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), NParticlesPerCollision);
851+
rNchAnalysis.fill(HIST("hNchCentralityGenerated"), mcCollision.centFT0M(), nParticlesPerCollision);
840852

841853
// Signal Loss Numenator Loop
842854

@@ -850,7 +862,7 @@ struct V0PtInvMassPlots {
850862
rMCCorrections.fill(HIST("hNEvents_Corrections"), 3.5, mcCollision.centFT0M()); // Event Split Numerator
851863
recoCollINEL++;
852864
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??????????????
865+
rMCCorrections.fill(HIST("hNEvents_Corrections"), 4.5, mcCollision.centFT0M()); // Event Split Denominator
854866
recoCollINELgt0++;
855867
}
856868
}
@@ -860,19 +872,18 @@ struct V0PtInvMassPlots {
860872
return;
861873
}
862874
if (recoCollINELgt0 > 0) {
863-
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator??????????
875+
rMCCorrections.fill(HIST("hNEvents_Corrections"), 5.5, mcCollision.centFT0M()); // Event Efficiency Numerator and Event Split Denominator
864876
}
865877

866878
// Singnal Loss Numerator Loop
867-
for (auto& mcParticle : mcParticles) {
879+
for (const auto& mcParticle : mcParticles) {
868880
if (!mcParticle.isPhysicalPrimary()) {
869881
continue;
870882
}
871-
if (std::abs(mcParticle.y()) > 0.5f) {
883+
if (std::abs(mcParticle.y()) > rapidityCut) {
872884
continue;
873885
}
874886
if (recoCollINELgt0 > 0) {
875-
rMCCorrections.fill(HIST("hNEvents_Corrections"), 6.5, mcCollision.centFT0M());
876887
if (mcParticle.pdgCode() == kK0Short) // K0sh matched
877888
{
878889
rMCCorrections.fill(HIST("hK0shGeneratedRecoPtSpectrum"), mcParticle.pt(), mcCollision.centFT0M());
@@ -957,6 +968,7 @@ struct V0PtInvMassPlots {
957968
}
958969
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, mcCollision.centFT0M()); // Event Split Numenator
959970
rNchAnalysis.fill(HIST("hNchCentrality"), mcCollision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
971+
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), mcCollision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
960972
for (const auto& v0 : V0s) {
961973
// 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)
962974
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();
@@ -1115,6 +1127,7 @@ struct V0PtInvMassPlots {
11151127
}
11161128
rPtAnalysis.fill(HIST("hNRecEvents"), 0.5, collision.centFT0M()); // Number of recorded events
11171129
rNchAnalysis.fill(HIST("hNchCentrality"), collision.centFT0M(), collision.multNTracksGlobal()); // Nch vs Centrality
1130+
rNchAnalysis.fill(HIST("hNchCentralityEtaHalf"), collision.centFT0M(), collision.multNGlobalTracksPVetaHalf()); // Nch vs Centrality EtaHalfCut
11181131
for (const auto& v0 : V0s) {
11191132
// 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)
11201133
const auto& posDaughterTrack = v0.template posTrack_as<DaughterTracks>();

0 commit comments

Comments
 (0)