@@ -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