@@ -399,7 +399,7 @@ struct HfTaskFlow {
399399 using SmallGroupMcCollisions = soa::SmallGroups<soa::Join<aod::McCollisionLabels, aod::Collisions, aod::EvSel, aod::CentFT0Cs, aod::CentFT0CVariant1s, aod::CentFT0Ms, aod::CentFV0As, aod::Mults>>;
400400 // using FilteredMcCollisionsWMult = soa::Filtered<soa::Join<aod::McCollisions, aod::MultMCExtras>>;
401401 using FilteredMcCollisionsWMult = soa::Join<aod::McCollisions, aod::MultMCExtras>;
402- using FilteredMcCollisionsWMultWCollsExtra = soa::Filtered<soa:: Join<aod::McCollisions, aod::McCollsExtra, aod::MultMCExtras> >;
402+ using FilteredMcCollisionsWMultWCollsExtra = soa::Join<aod::McCollisions, aod::McCollsExtra, aod::MultMCExtras>;
403403 // using FilteredMcParticles = soa::Filtered<aod::McParticles>;
404404 using FilteredMcParticles = aod::McParticles;
405405
@@ -3088,7 +3088,7 @@ struct HfTaskFlow {
30883088
30893089 float centralityWeight = 1 .0f ;
30903090 if (configCollision.useCentrality ) {
3091- getCentralityWeight (centralityWeight, getCentralityEstimator (collision1, true ));
3091+ getCentralityWeight (centralityWeight, getCentralityEstimator (collision1, false ));
30923092 if (getCentralityEstimator (collision1, false ) < configCollision.minCentrality || getCentralityEstimator (collision1, false ) >= configCollision.maxCentrality ) {
30933093 continue ;
30943094 }
@@ -3200,7 +3200,7 @@ struct HfTaskFlow {
32003200 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
32013201 loadEfficiencyCorrection (bc.timestamp ());
32023202 float multiplicity = 0 .f ;
3203- float centrality = 0 .f ;
3203+ float centrality = - 1 .f ;
32043204 float centralityWeight = 1 .f ;
32053205
32063206 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3239,7 +3239,7 @@ struct HfTaskFlow {
32393239 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
32403240 loadEfficiencyCorrection (bc.timestamp ());
32413241 float multiplicity = 0 .f ;
3242- float centrality = 0 .f ;
3242+ float centrality = - 1 .f ;
32433243 float centralityWeight = 1 .f ;
32443244
32453245 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3278,7 +3278,7 @@ struct HfTaskFlow {
32783278 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
32793279 loadEfficiencyCorrection (bc.timestamp ());
32803280 float multiplicity = 0 .f ;
3281- float centrality = 0 .f ;
3281+ float centrality = - 1 .f ;
32823282 float centralityWeight = 1 .f ;
32833283
32843284 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3310,7 +3310,7 @@ struct HfTaskFlow {
33103310 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
33113311 loadEfficiencyCorrection (bc.timestamp ());
33123312 float multiplicity = 0 .f ;
3313- float centrality = 0 .f ;
3313+ float centrality = - 1 .f ;
33143314 float centralityWeight = 1 .f ;
33153315
33163316 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3346,7 +3346,7 @@ struct HfTaskFlow {
33463346 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
33473347 loadEfficiencyCorrection (bc.timestamp ());
33483348 float multiplicity = 0 .f ;
3349- float centrality = 0 .f ;
3349+ float centrality = - 1 .f ;
33503350 float centralityWeight = 1 .f ;
33513351
33523352 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3382,7 +3382,7 @@ struct HfTaskFlow {
33823382 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
33833383 loadEfficiencyCorrection (bc.timestamp ());
33843384 float multiplicity = 0 .f ;
3385- float centrality = 0 .f ;
3385+ float centrality = - 1 .f ;
33863386 float centralityWeight = 1 .f ;
33873387
33883388 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3428,7 +3428,7 @@ struct HfTaskFlow {
34283428 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
34293429 loadEfficiencyCorrection (bc.timestamp ());
34303430 float multiplicity = 0 .f ;
3431- float centrality = 0 .f ;
3431+ float centrality = - 1 .f ;
34323432 float centralityWeight = 1 .f ;
34333433
34343434 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3469,7 +3469,7 @@ struct HfTaskFlow {
34693469 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
34703470 loadEfficiencyCorrection (bc.timestamp ());
34713471 float multiplicity = 0 .f ;
3472- float centrality = 0 .f ;
3472+ float centrality = - 1 .f ;
34733473 float centralityWeight = 1 .f ;
34743474
34753475 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3495,7 +3495,7 @@ struct HfTaskFlow {
34953495 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
34963496 loadEfficiencyCorrection (bc.timestamp ());
34973497 float multiplicity = 0 .f ;
3498- float centrality = 0 .f ;
3498+ float centrality = - 1 .f ;
34993499 float centralityWeight = 1 .f ;
35003500
35013501 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3531,7 +3531,7 @@ struct HfTaskFlow {
35313531 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
35323532 loadEfficiencyCorrection (bc.timestamp ());
35333533 float multiplicity = 0 .f ;
3534- float centrality = 0 .f ;
3534+ float centrality = - 1 .f ;
35353535 float centralityWeight = 1 .f ;
35363536
35373537 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3557,7 +3557,7 @@ struct HfTaskFlow {
35573557 auto bc = collision.template bc_as <aod::BCsWithTimestamps>();
35583558 loadEfficiencyCorrection (bc.timestamp ());
35593559 float multiplicity = 0 .f ;
3560- float centrality = 0 .f ;
3560+ float centrality = - 1 .f ;
35613561 float centralityWeight = 1 .f ;
35623562
35633563 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3769,7 +3769,7 @@ struct HfTaskFlow {
37693769 registry.fill (HIST (" Data/hNTracks" ), tracks.size ());
37703770 }
37713771 float multiplicity = 0 .f ;
3772- float centrality = 0 .f ;
3772+ float centrality = - 1 .f ;
37733773 float centralityWeight = 1 .f ;
37743774
37753775 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3808,7 +3808,7 @@ struct HfTaskFlow {
38083808 loadGain (bc);
38093809 const auto & ft0 = collision.foundFT0 ();
38103810 float multiplicity = 0 .f ;
3811- float centrality = 0 .f ;
3811+ float centrality = - 1 .f ;
38123812 float centralityWeight = 1 .f ;
38133813
38143814 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3842,7 +3842,7 @@ struct HfTaskFlow {
38423842 loadGain (bc);
38433843 const auto & ft0 = collision.foundFT0 ();
38443844 float multiplicity = 0 .f ;
3845- float centrality = 0 .f ;
3845+ float centrality = - 1 .f ;
38463846 float centralityWeight = 1 .f ;
38473847
38483848 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3876,7 +3876,7 @@ struct HfTaskFlow {
38763876 loadGain (bc);
38773877 const auto & ft0 = collision.foundFT0 ();
38783878 float multiplicity = 0 .f ;
3879- float centrality = 0 .f ;
3879+ float centrality = - 1 .f ;
38803880 float centralityWeight = 1 .f ;
38813881
38823882 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3913,7 +3913,7 @@ struct HfTaskFlow {
39133913 loadGain (bc);
39143914 const auto & ft0 = collision.foundFT0 ();
39153915 float multiplicity = 0 .f ;
3916- float centrality = 0 .f ;
3916+ float centrality = - 1 .f ;
39173917 float centralityWeight = 1 .f ;
39183918
39193919 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3950,7 +3950,7 @@ struct HfTaskFlow {
39503950 loadGain (bc);
39513951 const auto & ft0 = collision.foundFT0 ();
39523952 float multiplicity = 0 .f ;
3953- float centrality = 0 .f ;
3953+ float centrality = - 1 .f ;
39543954 float centralityWeight = 1 .f ;
39553955
39563956 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -3986,7 +3986,7 @@ struct HfTaskFlow {
39863986 loadGain (bc);
39873987 const auto & ft0 = collision.foundFT0 ();
39883988 float multiplicity = 0 .f ;
3989- float centrality = 0 .f ;
3989+ float centrality = - 1 .f ;
39903990 float centralityWeight = 1 .f ;
39913991
39923992 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -4027,7 +4027,7 @@ struct HfTaskFlow {
40274027 registry.fill (HIST (" Data/hNTracks" ), tracks.size ());
40284028 }
40294029 float multiplicity = 0 .f ;
4030- float centrality = 0 .f ;
4030+ float centrality = - 1 .f ;
40314031 float centralityWeight = 1 .f ;
40324032
40334033 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -4061,7 +4061,7 @@ struct HfTaskFlow {
40614061 loadGain (bc);
40624062 const auto & ft0 = collision.foundFT0 ();
40634063 float multiplicity = 0 .f ;
4064- float centrality = 0 .f ;
4064+ float centrality = - 1 .f ;
40654065 float centralityWeight = 1 .f ;
40664066
40674067 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -4095,7 +4095,7 @@ struct HfTaskFlow {
40954095 loadGain (bc);
40964096 const auto & ft0 = collision.foundFT0 ();
40974097 float multiplicity = 0 .f ;
4098- float centrality = 0 .f ;
4098+ float centrality = - 1 .f ;
40994099 float centralityWeight = 1 .f ;
41004100
41014101 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -4128,7 +4128,7 @@ struct HfTaskFlow {
41284128 loadGain (bc);
41294129 const auto & ft0 = collision.foundFT0 ();
41304130 float multiplicity = 0 .f ;
4131- float centrality = 0 .f ;
4131+ float centrality = - 1 .f ;
41324132 float centralityWeight = 1 .f ;
41334133
41344134 if (!isAcceptedEventActivity (collision, tracks, multiplicity, centrality, centralityWeight)) {
@@ -4145,7 +4145,7 @@ struct HfTaskFlow {
41454145 // MONTE-CARLO
41464146 // ===================================================================================================================================================================================================================================================================
41474147
4148- void processSameMcGen (FilteredMcCollisionsWMult ::iterator const & mcCollision,
4148+ void processSameMcGen (FilteredMcCollisionsWMultWCollsExtra ::iterator const & mcCollision,
41494149 FilteredMcParticles const & mcParticles,
41504150 SmallGroupMcCollisions const & collisions)
41514151 {
@@ -4154,6 +4154,10 @@ struct HfTaskFlow {
41544154 return ;
41554155 }
41564156
4157+ if (collisions.size () == 0 ) {
4158+ return ;
4159+ }
4160+
41574161 float multiplicity = 0 .f ;
41584162 if (configCollision.useMultiplicityFromTracks ) {
41594163 for (const auto & track : mcParticles) {
@@ -4165,12 +4169,27 @@ struct HfTaskFlow {
41654169 multiplicity = mcCollision.multMCPVz ();
41664170 }
41674171
4168- if ((multiplicity < configCollision.minMultiplicity ) || (multiplicity >= configCollision.maxMultiplicity )) {
4169- return ;
4172+ float centrality = -1 .f ;
4173+ for (const auto & collision : collisions) {
4174+ // if (!collision.sel8()) {
4175+ // continue;
4176+ // }
4177+ // if (collision.globalIndex() != mcCollision.bestCollisionIndex()) {
4178+ // continue;
4179+ // }
4180+ centrality = getCentralityEstimator (collision, false );
4181+ // break;
41704182 }
41714183
4172- if (collisions.size () == 0 ) {
4173- return ;
4184+ if (configCollision.useCentrality ) {
4185+ if (centrality < configCollision.minCentrality || centrality >= configCollision.maxCentrality ) {
4186+ return ;
4187+ }
4188+ }
4189+ if (!configCollision.useCentrality ) {
4190+ if ((multiplicity < configCollision.minMultiplicity ) || (multiplicity >= configCollision.maxMultiplicity )) {
4191+ return ;
4192+ }
41744193 }
41754194
41764195 sameEvent->fillEvent (multiplicity, CorrelationContainer::kCFStepAll );
@@ -4539,12 +4558,12 @@ struct HfTaskFlow {
45394558 // MONTE-CARLO
45404559 // ===================================================================================================================================================================================================================================================================
45414560
4542- void processMixedMcGen (FilteredMcCollisionsWMult const & mcCollisions,
4561+ void processMixedMcGen (FilteredMcCollisionsWMultWCollsExtra const & mcCollisions,
45434562 FilteredMcParticles const & mcParticles,
45444563 SmallGroupMcCollisions const & collisions)
45454564 {
45464565
4547- auto getTracksSize = [&mcParticles, this ](soa::Join<aod::McCollisions, aod::MultMCExtras>::iterator const & mcCollision) {
4566+ auto getTracksSize = [&mcParticles, this ](soa::Join<aod::McCollisions, aod::McCollsExtra, aod:: MultMCExtras>::iterator const & mcCollision) {
45484567 auto associatedTracks = mcParticles.sliceByCached (o2::aod::mcparticle::mcCollisionId, mcCollision.globalIndex (), this ->cache );
45494568 float multiplicity = 0 .f ;
45504569 if (configCollision.useMultiplicityFromTracks ) {
@@ -4564,17 +4583,26 @@ struct HfTaskFlow {
45644583
45654584 auto tracksTuple = std::make_tuple (mcParticles, mcParticles);
45664585
4567- Pair<FilteredMcCollisionsWMult , FilteredMcParticles, FilteredMcParticles, MixedBinning> pairs{binningOnVtxAndMult, configTask.nMixedEvents , -1 , mcCollisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
4586+ Pair<FilteredMcCollisionsWMultWCollsExtra , FilteredMcParticles, FilteredMcParticles, MixedBinning> pairs{binningOnVtxAndMult, configTask.nMixedEvents , -1 , mcCollisions, tracksTuple, &cache}; // -1 is the number of the bin to skip
45684587
45694588 for (auto it = pairs.begin (); it != pairs.end (); it++) {
45704589 auto & [collision1, tracks1, collision2, tracks2] = *it;
45714590
45724591 if (tracks1.size () == 0 || tracks2.size () == 0 ) { // guard against empty filtered batch
4573- return ;
4592+ continue ;
45744593 }
45754594
4576- auto multiplicityCollision1 = 0 ;
4577- auto multiplicityCollision2 = 0 ;
4595+ auto groupedCollisions1 = collisions.sliceBy (collisionPerMcCollision, collision1.globalIndex ());
4596+ auto groupedCollisions2 = collisions.sliceBy (collisionPerMcCollision, collision2.globalIndex ());
4597+ if (groupedCollisions1.size () == 0 ) {
4598+ continue ;
4599+ }
4600+ if (groupedCollisions2.size () == 0 ) {
4601+ continue ;
4602+ }
4603+
4604+ float multiplicityCollision1 = 0 .f ;
4605+ float multiplicityCollision2 = 0 .f ;
45784606
45794607 if (configCollision.useMultiplicityFromTracks ) {
45804608 for (const auto & track : tracks1) {
@@ -4592,20 +4620,42 @@ struct HfTaskFlow {
45924620 multiplicityCollision2 = collision2.multMCPVz ();
45934621 }
45944622
4595- if ((multiplicityCollision1 < configCollision.minMultiplicity || multiplicityCollision1 >= configCollision.maxMultiplicity )) {
4596- continue ;
4623+ float centralityCollision1 = 999 .f ;
4624+ float centralityCollision2 = 999 .f ;
4625+ for (const auto & reconstructedCollision1 : groupedCollisions1) {
4626+ // if (!collision1.sel8()) {
4627+ // continue;
4628+ // }
4629+ // if (reconstructedCollision1.globalIndex() != collision1.bestCollisionIndex()) {
4630+ // continue;
4631+ // }
4632+ centralityCollision1 = getCentralityEstimator (reconstructedCollision1, false );
4633+ // break;
45974634 }
4598- if ((multiplicityCollision2 < configCollision.minMultiplicity || multiplicityCollision2 >= configCollision.maxMultiplicity )) {
4599- continue ;
4635+ for (const auto & reconstructedCollision2 : groupedCollisions2) {
4636+ // if (reconstructedCollision2.globalIndex() != collision2.bestCollisionIndex()) {
4637+ // continue;
4638+ // }
4639+ centralityCollision2 = getCentralityEstimator (reconstructedCollision2, false );
4640+ // break;
46004641 }
46014642
4602- auto groupedCollisions1 = collisions.sliceBy (collisionPerMcCollision, collision1.globalIndex ());
4603- auto groupedCollisions2 = collisions.sliceBy (collisionPerMcCollision, collision2.globalIndex ());
4604- if (groupedCollisions1.size () == 0 ) {
4605- continue ;
4643+ if (configCollision.useCentrality ) {
4644+ if (centralityCollision1 < configCollision.minCentrality || centralityCollision1 >= configCollision.maxCentrality ) {
4645+ continue ;
4646+ }
4647+ if (centralityCollision2 < configCollision.minCentrality || centralityCollision2 >= configCollision.maxCentrality ) {
4648+ continue ;
4649+ }
46064650 }
4607- if (groupedCollisions2.size () == 0 ) {
4608- continue ;
4651+
4652+ if (!configCollision.useCentrality ) {
4653+ if ((multiplicityCollision1 < configCollision.minMultiplicity || multiplicityCollision1 >= configCollision.maxMultiplicity )) {
4654+ continue ;
4655+ }
4656+ if ((multiplicityCollision2 < configCollision.minMultiplicity || multiplicityCollision2 >= configCollision.maxMultiplicity )) {
4657+ continue ;
4658+ }
46094659 }
46104660
46114661 mixedEvent->fillEvent (multiplicityCollision1, CorrelationContainer::kCFStepAll );
0 commit comments