@@ -113,14 +113,16 @@ struct phianalysisrun3_PbPb {
113113 Configurable<float > confMaxRot{" confMaxRot" , 7 .0f * 3 .14159265f / 6 .0f , " Maximum of rotation" };
114114 Configurable<bool > pdgcheck{" pdgcheck" , true , " pdgcheck" };
115115 Configurable<bool > reco{" reco" , true , " reco" };
116+ Configurable<bool > cfgDoSel8{" cfgDoSel8" , true , " Apply sel8 selection" };
116117 ConfigurableAxis ptAxisphi{" ptAxisphi" , {200 , 0 .0f , 20 .0f }, " phi pT axis" };
117118 ConfigurableAxis centAxisphi{" centAxisphi" , {200 , 0.0 , 200.0 }, " phi centrality axis" };
118119 ConfigurableAxis massAxisphi{" massAxisphi" , {200 , 0.9 , 1.1 }, " phi mass axis" };
119120
120121 ConfigurableAxis binsImpactPar{" binsImpactPar" , {VARIABLE_WIDTH, 0 , 3.5 , 5.67 , 7.45 , 8.85 , 10.0 , 11.21 , 12.26 , 13.28 , 14.23 , 15.27 }, " Binning of the impact parameter axis" };
121122 ConfigurableAxis binsPt{" binsPt" , {VARIABLE_WIDTH, 0.0 , 0.1 , 0.2 , 0.3 , 0.4 , 0.6 , 0.8 , 1 , 1.2 , 1.4 , 1.6 , 1.8 , 2.0 , 2.2 , 2.4 , 2.6 , 2.8 , 3.0 , 3.5 , 4.0 , 4.5 , 5.0 , 6.0 , 7.0 , 8.0 , 10.0 , 12.0 }, " Binning of the pT axis" };
122123 ConfigurableAxis binsCent{" binsCent" , {VARIABLE_WIDTH, 0.0 , 10.0 , 20.0 , 30.0 , 40.0 , 50.0 , 60.0 , 70.0 , 80.0 , 90.0 , 100.0 , 110.0 }, " Binning of the centrality axis" };
123- Configurable<int > cfgCutOccupancy{" cfgCutOccupancy" , 3000 , " Occupancy cut" };
124+ Configurable<int > cfgMinOccupancy{" cfgMinOccupancy" , 0 , " Minimum occupancy cut" };
125+ Configurable<int > cfgMaxOccupancy{" cfgMaxOccupancy" , 3000 , " Maximum occupancy cut" };
124126 Configurable<int > centestimator{" centestimator" , 0 , " Select multiplicity estimator: 0 - FT0C, 1 - FT0A, 2 - FT0M, 3 - FV0A, 4 - PVTracks" };
125127
126128 Configurable<bool > genacceptancecut{" genacceptancecut" , true , " use acceptance cut for generated" };
@@ -346,7 +348,7 @@ struct phianalysisrun3_PbPb {
346348 if (additionalEvSel6 && !collision.selection_bit (o2::aod::evsel::kIsGoodZvtxFT0vsPV ))
347349 return false ;
348350 int occupancy = collision.trackOccupancyInTimeRange ();
349- if (fillOccupancy && (occupancy > cfgCutOccupancy ))
351+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy ))
350352 return false ;
351353
352354 return true ;
@@ -469,7 +471,7 @@ struct phianalysisrun3_PbPb {
469471 }
470472 histos.fill (HIST (" hEvtSelInfo" ), 8.5 );
471473 int occupancy = collision.trackOccupancyInTimeRange ();
472- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
474+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
473475 return ;
474476 }
475477 histos.fill (HIST (" hEvtSelInfo" ), 9.5 );
@@ -626,7 +628,9 @@ struct phianalysisrun3_PbPb {
626628 int occupancy1 = c1.trackOccupancyInTimeRange ();
627629 int occupancy2 = c2.trackOccupancyInTimeRange ();
628630
629- if (fillOccupancy && (occupancy1 > cfgCutOccupancy || occupancy2 > cfgCutOccupancy)) {
631+ if (fillOccupancy &&
632+ ((occupancy1 < cfgMinOccupancy || occupancy1 > cfgMaxOccupancy) ||
633+ (occupancy2 < cfgMinOccupancy || occupancy2 > cfgMaxOccupancy))) {
630634 continue ;
631635 }
632636 float multiplicity;
@@ -695,7 +699,9 @@ struct phianalysisrun3_PbPb {
695699 int occupancy1 = c1.trackOccupancyInTimeRange ();
696700 int occupancy2 = c2.trackOccupancyInTimeRange ();
697701
698- if (fillOccupancy && (occupancy1 > cfgCutOccupancy || occupancy2 > cfgCutOccupancy)) {
702+ if (fillOccupancy &&
703+ ((occupancy1 < cfgMinOccupancy || occupancy1 > cfgMaxOccupancy) ||
704+ (occupancy2 < cfgMinOccupancy || occupancy2 > cfgMaxOccupancy))) {
699705 continue ;
700706 }
701707 float multiplicity;
@@ -765,7 +771,9 @@ struct phianalysisrun3_PbPb {
765771 int occupancy1 = c1.trackOccupancyInTimeRange ();
766772 int occupancy2 = c2.trackOccupancyInTimeRange ();
767773
768- if (fillOccupancy && (occupancy1 > cfgCutOccupancy || occupancy2 > cfgCutOccupancy)) {
774+ if (fillOccupancy &&
775+ ((occupancy1 < cfgMinOccupancy || occupancy1 > cfgMaxOccupancy) ||
776+ (occupancy2 < cfgMinOccupancy || occupancy2 > cfgMaxOccupancy))) {
769777 continue ;
770778 }
771779 float multiplicity;
@@ -835,7 +843,9 @@ struct phianalysisrun3_PbPb {
835843 int occupancy1 = c1.trackOccupancyInTimeRange ();
836844 int occupancy2 = c2.trackOccupancyInTimeRange ();
837845
838- if (fillOccupancy && (occupancy1 > cfgCutOccupancy || occupancy2 > cfgCutOccupancy)) {
846+ if (fillOccupancy &&
847+ ((occupancy1 < cfgMinOccupancy || occupancy1 > cfgMaxOccupancy) ||
848+ (occupancy2 < cfgMinOccupancy || occupancy2 > cfgMaxOccupancy))) {
839849 continue ;
840850 }
841851 float multiplicity;
@@ -877,7 +887,7 @@ struct phianalysisrun3_PbPb {
877887 return ;
878888 }
879889 int occupancy = collision.trackOccupancyInTimeRange ();
880- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
890+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
881891 return ;
882892 }
883893 float multiplicity{-1 };
@@ -964,9 +974,13 @@ struct phianalysisrun3_PbPb {
964974 }
965975 for (const auto & RecCollision : RecCollisions) {
966976 histos.fill (HIST (" hMC" ), 3 );
967- if (!RecCollision.sel8 () || std::abs (RecCollision. posZ ()) > cfgCutVertex ) {
977+ if (cfgDoSel8 && !RecCollision.sel8 ()) {
968978 continue ;
969979 }
980+ if (std::abs (RecCollision.posZ ()) > cfgCutVertex) {
981+ continue ;
982+ }
983+
970984 histos.fill (HIST (" hMC" ), 4 );
971985 if (additionalEvSel1 && !RecCollision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
972986 continue ;
@@ -993,7 +1007,7 @@ struct phianalysisrun3_PbPb {
9931007 }
9941008 histos.fill (HIST (" hMC" ), 10 );
9951009 int occupancy = RecCollision.trackOccupancyInTimeRange ();
996- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1010+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
9971011 continue ;
9981012 }
9991013 histos.fill (HIST (" hMC" ), 11 );
@@ -1173,14 +1187,18 @@ struct phianalysisrun3_PbPb {
11731187 int nevts = 0 ;
11741188 auto multiplicity = 0 ;
11751189 for (const auto & collision : collisions) {
1176- if (!collision.sel8 () || std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
1190+ if (cfgDoSel8 && !collision.sel8 ()) {
1191+ continue ;
1192+ }
1193+ if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
11771194 continue ;
11781195 }
1196+
11791197 if (additionalEvSel2 && (!collision.selection_bit (aod::evsel::kNoSameBunchPileup ) || !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ))) {
11801198 continue ;
11811199 }
11821200 int occupancy = collision.trackOccupancyInTimeRange ();
1183- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1201+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
11841202 continue ;
11851203 }
11861204 histos.fill (HIST (" hOccupancy1" ), occupancy);
@@ -1249,14 +1267,18 @@ struct phianalysisrun3_PbPb {
12491267 if (!collision.has_mcCollision ()) {
12501268 return ;
12511269 }
1252- if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex || !collision.sel8 ()) {
1270+ if (cfgDoSel8 && !collision.sel8 ()) {
1271+ return ;
1272+ }
1273+ if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
12531274 return ;
12541275 }
1276+
12551277 if (additionalEvSel2 && (!collision.selection_bit (aod::evsel::kNoSameBunchPileup ) || !collision.selection_bit (aod::evsel::kIsGoodZvtxFT0vsPV ))) {
12561278 return ;
12571279 }
12581280 int occupancy = collision.trackOccupancyInTimeRange ();
1259- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1281+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
12601282 return ;
12611283 }
12621284 auto multiplicity = collision.centFT0C ();
@@ -1393,7 +1415,7 @@ struct phianalysisrun3_PbPb {
13931415 return ;
13941416 }
13951417 int occupancy = collision.trackOccupancyInTimeRange ();
1396- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1418+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
13971419 return ;
13981420 }
13991421 float multiplicity{-1 };
@@ -1515,12 +1537,13 @@ struct phianalysisrun3_PbPb {
15151537 }
15161538 int occupancy1 = c1.trackOccupancyInTimeRange ();
15171539 int occupancy2 = c2.trackOccupancyInTimeRange ();
1518- if (fillOccupancy && (occupancy1 > cfgCutOccupancy )) {
1540+ if (fillOccupancy && (occupancy1 < cfgMinOccupancy || occupancy1 > cfgMaxOccupancy )) {
15191541 continue ;
15201542 }
1521- if (fillOccupancy && (occupancy2 > cfgCutOccupancy )) {
1543+ if (fillOccupancy && (occupancy2 < cfgMinOccupancy || occupancy2 > cfgMaxOccupancy )) {
15221544 continue ;
15231545 }
1546+
15241547 auto multiplicity = c1.centFT0C ();
15251548 histos.fill (HIST (" Centmix" ), multiplicity);
15261549 for (const auto & [t1, t2] : o2::soa::combinations (o2::soa::CombinationsFullIndexPolicy (tracks1, tracks2))) {
@@ -1574,11 +1597,15 @@ struct phianalysisrun3_PbPb {
15741597 std::vector<int64_t > selectedEvents (collisions.size ());
15751598 int nevts = 0 ;
15761599 auto multiplicity = -1.0 ;
1577- histos.fill (HIST (" hMC1" ), 2.5 );
15781600 for (const auto & collision : collisions) {
1579- if (!collision.sel8 () || std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
1601+ histos.fill (HIST (" hMC1" ), 2.5 );
1602+ if (cfgDoSel8 && !collision.sel8 ()) {
1603+ continue ;
1604+ }
1605+ if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
15801606 continue ;
15811607 }
1608+
15821609 histos.fill (HIST (" hMC1" ), 3.5 );
15831610 if (additionalEvSel1 && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
15841611 continue ;
@@ -1605,7 +1632,7 @@ struct phianalysisrun3_PbPb {
16051632 }
16061633 histos.fill (HIST (" hMC1" ), 9.5 );
16071634 int occupancy = collision.trackOccupancyInTimeRange ();
1608- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1635+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
16091636 continue ;
16101637 }
16111638 histos.fill (HIST (" hMC1" ), 10.5 );
@@ -1674,7 +1701,10 @@ struct phianalysisrun3_PbPb {
16741701 if (!collision.has_mcCollision ()) {
16751702 return ;
16761703 }
1677- if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex || !collision.sel8 ()) {
1704+ if (cfgDoSel8 && !collision.sel8 ()) {
1705+ return ;
1706+ }
1707+ if (std::abs (collision.mcCollision ().posZ ()) > cfgCutVertex) {
16781708 return ;
16791709 }
16801710 if (additionalEvSel1 && !collision.selection_bit (aod::evsel::kNoTimeFrameBorder )) {
@@ -1699,7 +1729,7 @@ struct phianalysisrun3_PbPb {
16991729 return ;
17001730 }
17011731 int occupancy = collision.trackOccupancyInTimeRange ();
1702- if (fillOccupancy && (occupancy > cfgCutOccupancy )) {
1732+ if (fillOccupancy && (occupancy < cfgMinOccupancy || occupancy > cfgMaxOccupancy )) {
17031733 return ;
17041734 }
17051735 const int kCentFT0C = 0 ;
0 commit comments