@@ -43,7 +43,7 @@ struct lambdaAnalysis_pb {
4343 Preslice<aod::Tracks> perCollision = aod::track::collisionId;
4444 // Configurables.
4545
46- Configurable<int > ConfEvtOccupancyInTimeRange{" ConfEvtOccupancyInTimeRange" , - 1 , " Evt sel: maximum track occupancy " };
46+ Configurable<bool > ConfEvtOccupancyInTimeRange{" ConfEvtOccupancyInTimeRange" , false , " occupancy selection true or false " };
4747 Configurable<int > nBinsPt{" nBinsPt" , 100 , " N bins in pT histogram" };
4848 Configurable<int > nBinsInvM{" nBinsInvM" , 120 , " N bins in InvMass histogram" };
4949 Configurable<int > lambda1520id{" lambda1520id" , 3124 , " pdg" };
@@ -106,7 +106,7 @@ struct lambdaAnalysis_pb {
106106 ConfigurableAxis cMixVtxBins{" cMixVtxBins" , {VARIABLE_WIDTH, -10 .0f , -9 .f , -8 .f , -7 .f , -6 .f , -5 .f , -4 .f , -3 .f , -2 .f , -1 .f , 0 .f , 1 .f , 2 .f , 3 .f , 4 .f , 5 .f , 6 .f , 7 .f , 8 .f , 9 .f , 10 .f }, " Mixing bins - z-vertex" };
107107 ConfigurableAxis cMixMultBins{" cMixMultBins" , {VARIABLE_WIDTH, 0 .0f , 10 .0f , 20 .0f , 30 .0f , 40 .0f , 50 .0f , 60 .0f , 70 .0f , 80 .0f , 90 .0f , 100 .0f , 200 .0f }, " Mixing bins - multiplicity" };
108108 ConfigurableAxis cMixEPAngle{" cMixEPAngle" , {VARIABLE_WIDTH, -1 .5708f , -1 .25664f , -0 .942478f , -0 .628319f , 0 .f , 0 .628319f , 0 .942478f , 1 .25664f , 1 .5708f }, " event plane" };
109-
109+ ConfigurableAxis occupancy_bins{ " occupancy_bins " , {VARIABLE_WIDTH, 0.0 , 100 , 500 , 600 , 1000 , 1100 , 1500 , 1600 , 2000 , 2100 , 2500 , 2600 , 3000 , 3100 , 3500 , 3600 , 4000 , 4100 , 4500 , 4600 , 5000 , 5100 , 9999 }, " Binning of the occupancy axis " };
110110 // Histogram Registry.
111111 HistogramRegistry histos{" histos" , {}, OutputObjHandlingPolicy::AnalysisObject};
112112
@@ -126,8 +126,9 @@ struct lambdaAnalysis_pb {
126126 const AxisSpec axisVz (120 , -12 , 12 , {" vz" });
127127 const AxisSpec axisEP (120 , -3.14 , 3.14 , {" #theta" });
128128 const AxisSpec axisInvM (nBinsInvM, 1.44 , 2.04 , {" M_{inv} (GeV/c^{2})" });
129+ AxisSpec axisOccupancy = {occupancy_bins, " Occupancy [-40,100]" };
129130
130- histos.add (" Event/h1d_ft0_mult_percentile" , " FT0 (%)" , kTH1F , {axisCent});
131+ histos.add (" Event/h1d_ft0_mult_percentile" , " FT0 (%)" , kTH2F , {axisCent, axisOccupancy });
131132 if (doprocessMix || doprocessMixDF || doprocessMixepDF) {
132133 histos.add (" Event/mixing_vzVsmultpercentile" , " FT0(%)" , kTH3F , {axisCent, axisVz, axisEP});
133134 }
@@ -174,15 +175,15 @@ struct lambdaAnalysis_pb {
174175 // Analysis
175176 // Lambda Invariant Mass
176177 if (!doprocessMC) {
177- histos.add (" Analysis/h4d_lstar_invm_US_PM" , " THn #Lambda(1520)" , kTHnSparseF , {axisInvM, axisPt, axisCent});
178- histos.add (" Analysis/h4d_lstar_invm_US_MP" , " THn #bar #Lambda(1520)" , kTHnSparseF , {axisInvM, axisPt, axisCent});
179- histos.add (" Analysis/h4d_lstar_invm_PP" , " THn Like Signs p K^{+}" , kTHnSparseF , {axisInvM, axisPt, axisCent});
180- histos.add (" Analysis/h4d_lstar_invm_MM" , " THn Like Signs #bar{p} K^{-}" , kTHnSparseF , {axisInvM, axisPt, axisCent});
181- histos.add (" Analysis/h4d_lstar_invm_rot" , " THn Rotated" , kTHnSparseF , {axisInvM, axisPt, axisCent});
182- histos.add (" Analysis/h4d_lstar_invm_US_PM_mix" , " THn Mixed Events" , kTHnSparseF , {axisInvM, axisPt, axisCent});
183- histos.add (" Analysis/h4d_lstar_invm_US_MP_mix" , " THn anti Mixed Events" , kTHnSparseF , {axisInvM, axisPt, axisCent});
184- histos.add (" Analysis/h4d_lstar_invm_LS_PP_mix" , " THn Mixed Events PP" , kTHnSparseF , {axisInvM, axisPt, axisCent});
185- histos.add (" Analysis/h4d_lstar_invm_LS_MM_mix" , " THn Mixed Events MM" , kTHnSparseF , {axisInvM, axisPt, axisCent});
178+ histos.add (" Analysis/h4d_lstar_invm_US_PM" , " THn #Lambda(1520)" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
179+ histos.add (" Analysis/h4d_lstar_invm_US_MP" , " THn #bar #Lambda(1520)" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
180+ histos.add (" Analysis/h4d_lstar_invm_PP" , " THn Like Signs p K^{+}" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
181+ histos.add (" Analysis/h4d_lstar_invm_MM" , " THn Like Signs #bar{p} K^{-}" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
182+ histos.add (" Analysis/h4d_lstar_invm_rot" , " THn Rotated" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
183+ histos.add (" Analysis/h4d_lstar_invm_US_PM_mix" , " THn Mixed Events" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
184+ histos.add (" Analysis/h4d_lstar_invm_US_MP_mix" , " THn anti Mixed Events" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
185+ histos.add (" Analysis/h4d_lstar_invm_LS_PP_mix" , " THn Mixed Events PP" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
186+ histos.add (" Analysis/h4d_lstar_invm_LS_MM_mix" , " THn Mixed Events MM" , kTHnSparseF , {axisInvM, axisPt, axisCent, axisOccupancy });
186187 }
187188 // MC
188189 if (doprocessMC) {
@@ -366,7 +367,7 @@ struct lambdaAnalysis_pb {
366367 }
367368
368369 template <bool mix, bool mc, typename trackType>
369- void fillDataHistos (trackType const & trk1, trackType const & trk2, float const & mult)
370+ void fillDataHistos (trackType const & trk1, trackType const & trk2, float mult, int occup = 100 )
370371 {
371372
372373 TLorentzVector p1, p2, p;
@@ -497,37 +498,37 @@ struct lambdaAnalysis_pb {
497498 if constexpr (!mix && !mc) {
498499 if (trkPr.sign () * trkKa.sign () < 0 ) {
499500 if (trkPr.sign () > 0 )
500- histos.fill (HIST (" Analysis/h4d_lstar_invm_US_PM" ), _M, _pt, mult);
501+ histos.fill (HIST (" Analysis/h4d_lstar_invm_US_PM" ), _M, _pt, mult, occup );
501502 else
502- histos.fill (HIST (" Analysis/h4d_lstar_invm_US_MP" ), _M, _pt, mult);
503+ histos.fill (HIST (" Analysis/h4d_lstar_invm_US_MP" ), _M, _pt, mult, occup );
503504 if (doRotate) {
504505 float theta = rn->Uniform (1.56 , 1.58 );
505506 p1.RotateZ (theta);
506507 p = p1 + p2;
507508 if (std::abs (p.Rapidity ()) < 0.5 ) {
508- histos.fill (HIST (" Analysis/h4d_lstar_invm_rot" ), p.M (), p.Pt (), mult);
509+ histos.fill (HIST (" Analysis/h4d_lstar_invm_rot" ), p.M (), p.Pt (), mult, occup );
509510 }
510511 }
511512 } else {
512513 if (trkPr.sign () > 0 ) {
513- histos.fill (HIST (" Analysis/h4d_lstar_invm_PP" ), _M, _pt, mult);
514+ histos.fill (HIST (" Analysis/h4d_lstar_invm_PP" ), _M, _pt, mult, occup );
514515 } else {
515- histos.fill (HIST (" Analysis/h4d_lstar_invm_MM" ), _M, _pt, mult);
516+ histos.fill (HIST (" Analysis/h4d_lstar_invm_MM" ), _M, _pt, mult, occup );
516517 }
517518 }
518519 }
519520
520521 if constexpr (mix) {
521522 if (trkPr.sign () * trkKa.sign () < 0 ) {
522523 if (trkPr.sign () > 0 )
523- histos.fill (HIST (" Analysis/h4d_lstar_invm_US_PM_mix" ), _M, _pt, mult);
524+ histos.fill (HIST (" Analysis/h4d_lstar_invm_US_PM_mix" ), _M, _pt, mult, occup );
524525 else
525- histos.fill (HIST (" Analysis/h4d_lstar_invm_US_MP_mix" ), _M, _pt, mult);
526+ histos.fill (HIST (" Analysis/h4d_lstar_invm_US_MP_mix" ), _M, _pt, mult, occup );
526527 } else {
527528 if (trkPr.sign () > 0 )
528- histos.fill (HIST (" Analysis/h4d_lstar_invm_LS_PP_mix" ), _M, _pt, mult);
529+ histos.fill (HIST (" Analysis/h4d_lstar_invm_LS_PP_mix" ), _M, _pt, mult, occup );
529530 else
530- histos.fill (HIST (" Analysis/h4d_lstar_invm_LS_MM_mix" ), _M, _pt, mult);
531+ histos.fill (HIST (" Analysis/h4d_lstar_invm_LS_MM_mix" ), _M, _pt, mult, occup );
531532 }
532533 }
533534
@@ -560,9 +561,7 @@ struct lambdaAnalysis_pb {
560561 {
561562
562563 // LOGF(info, " collisions: Index = %d %d", collision.globalIndex(),tracks.size());
563- if (ConfEvtOccupancyInTimeRange > 0 && collision.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange)
564- return ;
565- histos.fill (HIST (" Event/h1d_ft0_mult_percentile" ), collision.cent ());
564+ histos.fill (HIST (" Event/h1d_ft0_mult_percentile" ), collision.cent (), 100 );
566565 fillDataHistos<false , false >(tracks, tracks, collision.cent ());
567566 }
568567
@@ -643,8 +642,6 @@ struct lambdaAnalysis_pb {
643642
644643 SameKindPair<resoCols, resoTracks, BinningType2> pairs{binningPositions2, cNumMixEv, -1 , collisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
645644 for (auto & [c1, t1, c2, t2] : pairs) {
646- if (ConfEvtOccupancyInTimeRange > 0 && c1.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange && c2.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange)
647- return ;
648645 // LOGF(info, "processMCMixedDerived: Mixed collisions : %d (%.3f, %.3f,%d), %d (%.3f, %.3f,%d)",c1.globalIndex(), c1.posZ(), c1.cent(),c1.mult(), c2.globalIndex(), c2.posZ(), c2.cent(),c2.mult());
649646 histos.fill (HIST (" Event/mixing_vzVsmultpercentile" ), c1.cent (), c1.posZ (), c1.evtPl ());
650647 fillDataHistos<true , false >(t1, t2, c1.cent ());
@@ -663,11 +660,13 @@ struct lambdaAnalysis_pb {
663660
664661 if (doprocessData)
665662 LOG (error) << " Disable processData() first!" ;
666- if (ConfEvtOccupancyInTimeRange > 0 && collision.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange)
667- return ;
663+ auto _occup = 100 ;
664+ if (ConfEvtOccupancyInTimeRange)
665+ _occup = collision.trackOccupancyInTimeRange ();
666+
668667 // LOGF(info, "inside df collisions: Index = %d %d", collision.globalIndex(),tracks.size());
669- histos.fill (HIST (" Event/h1d_ft0_mult_percentile" ), collision.cent ());
670- fillDataHistos<false , false >(tracks, tracks, collision.cent ());
668+ histos.fill (HIST (" Event/h1d_ft0_mult_percentile" ), collision.cent (), _occup );
669+ fillDataHistos<false , false >(tracks, tracks, collision.cent (), _occup );
671670 }
672671
673672 PROCESS_SWITCH (lambdaAnalysis_pb, processDatadf, " Process for data merged DF" , false );
@@ -684,12 +683,13 @@ struct lambdaAnalysis_pb {
684683
685684 SameKindPair<resoColDFs, resoTrackDFs, BinningTypeDF> pairs{binningPositions2, cNumMixEv, -1 , collisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
686685 for (auto & [c1, t1, c2, t2] : pairs) {
687- if (ConfEvtOccupancyInTimeRange > 0 && c1.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange && c2.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange)
688- return ;
686+ auto _occup = 100 ;
687+ if (ConfEvtOccupancyInTimeRange)
688+ _occup = c1.trackOccupancyInTimeRange ();
689689
690690 // LOGF(info, "processMCMixedDerived: Mixed collisions : %d (%.3f, %.3f,%d), %d (%.3f, %.3f,%d)",c1.globalIndex(), c1.posZ(), c1.cent(),c1.mult(), c2.globalIndex(), c2.posZ(), c2.cent(),c2.mult());
691691 histos.fill (HIST (" Event/mixing_vzVsmultpercentile" ), c1.cent (), c1.posZ (), c1.evtPl ());
692- fillDataHistos<true , false >(t1, t2, c1.cent ());
692+ fillDataHistos<true , false >(t1, t2, c1.cent (), _occup );
693693 }
694694 }
695695
@@ -706,8 +706,6 @@ struct lambdaAnalysis_pb {
706706
707707 SameKindPair<resoColDFs, resoTrackDFs, BinningTypeEP> pairs{binningPositions2, cNumMixEv, -1 , collisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
708708 for (auto & [c1, t1, c2, t2] : pairs) {
709- if (ConfEvtOccupancyInTimeRange > 0 && c1.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange && c2.trackOccupancyInTimeRange () > ConfEvtOccupancyInTimeRange)
710- return ;
711709 // LOGF(info, "processMCMixedDerived: Mixed collisions : %d (%.3f, %.3f,%.3f), %d (%.3f, %.3f, %.3f)",c1.globalIndex(), c1.posZ(), c1.cent(),c1.evtPl(), c2.globalIndex(), c2.posZ(), c2.cent(),c2.evtPl());
712710 histos.fill (HIST (" Event/mixing_vzVsmultpercentile" ), c1.cent (), c1.posZ (), c1.evtPl ());
713711 fillDataHistos<true , false >(t1, t2, c1.cent ());
0 commit comments