@@ -141,19 +141,15 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
141
141
ConfigurableAxis ConfTempFitVarpTBins{" ConfTempFitVarpTBins" , {20 , 0.5 , 4.05 }, " pT binning of the pT vs. TempFitVar plot" };
142
142
143
143
// / Correlation part
144
- Configurable<bool > ConfMixCent{" ConfMixCent" , true , " mixing in multiplicity or centrality bin" };
145
- Configurable<int > ConfMixingDepth{" ConfMixingDepth" , 5 , " number of mixing events" };
146
- ConfigurableAxis ConfMultBins{" ConfMultBins" , {VARIABLE_WIDTH, 0 .0f , 4 .0f , 8 .0f , 12 .0f , 16 .0f , 20 .0f , 24 .0f , 28 .0f , 32 .0f , 36 .0f , 40 .0f , 44 .0f , 48 .0f , 52 .0f , 56 .0f , 60 .0f , 64 .0f , 68 .0f , 72 .0f , 76 .0f , 80 .0f , 84 .0f , 88 .0f , 92 .0f , 96 .0f , 100 .0f , 200 .0f , 99999 .f }, " Mixing bins - multiplicity" }; // \todo to be obtained from the hash task
147
- ConfigurableAxis ConfMultBinsCent{" ConfMultBinsCent" , {VARIABLE_WIDTH, 0 .0f , 10 .0f , 20 .0f , 30 .0f , 40 .0f , 50 .0f , 60 .0f , 70 .0f , 80 .0f , 90 .0f , 100 .0f }, " Mixing bins - centrality percentile" };
144
+ ConfigurableAxis ConfMultBins{" ConfMultBins" , {VARIABLE_WIDTH, 0 .0f , 4 .0f , 8 .0f , 12 .0f , 16 .0f , 20 .0f , 24 .0f , 28 .0f , 32 .0f , 36 .0f , 40 .0f , 44 .0f , 48 .0f , 52 .0f , 56 .0f , 60 .0f , 64 .0f , 68 .0f , 72 .0f , 76 .0f , 80 .0f , 84 .0f , 88 .0f , 92 .0f , 96 .0f , 100 .0f , 200 .0f , 99999 .f }, " Mixing bins - multiplicity or centrality" }; // \todo to be obtained from the hash task
148
145
ConfigurableAxis ConfMultKstarBins{" ConfMultKstarBins" , {VARIABLE_WIDTH, 0 .0f , 200 .0f }, " Bins for kstar analysis in multiplicity or centrality bins (10 is maximum)" };
149
146
ConfigurableAxis ConfKtKstarBins{" ConfKtKstarBins" , {VARIABLE_WIDTH, 0 .1f , 0 .2f , 0 .3f , 0 .4f }, " Bins for kstar analysis in kT bins" };
150
147
ConfigurableAxis ConfVtxBins{" ConfVtxBins" , {VARIABLE_WIDTH, -10 .0f , -8 .f , -6 .f , -4 .f , -2 .f , 0 .f , 2 .f , 4 .f , 6 .f , 8 .f , 10 .f }, " Mixing bins - z-vertex" };
151
148
152
149
ConfigurableAxis ConfmTBins3D{" ConfmTBins3D" , {VARIABLE_WIDTH, 1 .02f , 1 .14f , 1 .20f , 1 .26f , 1 .38f , 1 .56f , 1 .86f , 4 .50f }, " mT Binning for the 3Dimensional plot: k* vs multiplicity vs mT (set <<twotracksconfigs.ConfUse3D>> to true in order to use)" };
153
150
ConfigurableAxis ConfmultBins3D{" ConfmultBins3D" , {VARIABLE_WIDTH, 0 .0f , 20 .0f , 30 .0f , 40 .0f , 99999 .0f }, " multiplicity Binning for the 3Dimensional plot: k* vs multiplicity vs mT (set <<twotracksconfigs.ConfUse3D>> to true in order to use)" };
154
151
155
- ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinningMult{{ConfVtxBins, ConfMultBins}, true };
156
- ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultV0M> colBinningCent{{ConfVtxBins, ConfMultBinsCent}, true };
152
+ ColumnBinningPolicy<aod::collision::PosZ, aod::femtouniversecollision::MultNtr> colBinning{{ConfVtxBins, ConfMultBins}, true };
157
153
158
154
ConfigurableAxis ConfkstarBins{" ConfkstarBins" , {300 , -1.5 , 1.5 }, " binning kstar" };
159
155
ConfigurableAxis ConfkTBins{" ConfkTBins" , {150 , 0 ., 9 .}, " binning kT" };
@@ -403,11 +399,7 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
403
399
template <typename CollisionType>
404
400
void fillCollision (CollisionType col)
405
401
{
406
- if (ConfMixCent) {
407
- MixQaRegistry.fill (HIST (" MixingQA/hSECollisionBins" ), colBinningCent.getBin ({col.posZ (), col.multV0M ()}));
408
- } else {
409
- MixQaRegistry.fill (HIST (" MixingQA/hSECollisionBins" ), colBinningMult.getBin ({col.posZ (), col.multNtr ()}));
410
- }
402
+ MixQaRegistry.fill (HIST (" MixingQA/hSECollisionBins" ), colBinning.getBin ({col.posZ (), col.multNtr ()}));
411
403
eventHisto.fillQA (col);
412
404
}
413
405
@@ -428,7 +420,7 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
428
420
// / Histogramming same event
429
421
if ((ContType == 1 || ContType == 2 ) && fillQA) {
430
422
for (auto & part : groupPartsOne) {
431
- if (!IsParticleNSigma ((int8_t )1 , part.p (), trackCuts.getNsigmaTPC (part, o2::track::PID::Proton), trackCuts.getNsigmaTOF (part, o2::track::PID::Proton), trackCuts.getNsigmaTPC (part, o2::track::PID::Pion), trackCuts.getNsigmaTOF (part, o2::track::PID::Pion), trackCuts.getNsigmaTPC (part, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (part, o2::track::PID::Kaon))) {
423
+ if (!IsParticleNSigma ((int8_t )1 , part.pt (), trackCuts.getNsigmaTPC (part, o2::track::PID::Proton), trackCuts.getNsigmaTOF (part, o2::track::PID::Proton), trackCuts.getNsigmaTPC (part, o2::track::PID::Pion), trackCuts.getNsigmaTOF (part, o2::track::PID::Pion), trackCuts.getNsigmaTPC (part, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (part, o2::track::PID::Kaon))) {
432
424
continue ;
433
425
}
434
426
trackHistoPartOne.fillQA <isMC, true >(part);
@@ -437,7 +429,7 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
437
429
438
430
if ((ContType == 1 || ContType == 3 ) && fillQA) {
439
431
for (auto & part : groupPartsTwo) {
440
- if (!IsParticleNSigma ((int8_t )2 , part.p (), trackCuts.getNsigmaTPC (part, o2::track::PID::Proton), trackCuts.getNsigmaTOF (part, o2::track::PID::Proton), trackCuts.getNsigmaTPC (part, o2::track::PID::Pion), trackCuts.getNsigmaTOF (part, o2::track::PID::Pion), trackCuts.getNsigmaTPC (part, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (part, o2::track::PID::Kaon))) {
432
+ if (!IsParticleNSigma ((int8_t )2 , part.pt (), trackCuts.getNsigmaTPC (part, o2::track::PID::Proton), trackCuts.getNsigmaTOF (part, o2::track::PID::Proton), trackCuts.getNsigmaTPC (part, o2::track::PID::Pion), trackCuts.getNsigmaTOF (part, o2::track::PID::Pion), trackCuts.getNsigmaTPC (part, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (part, o2::track::PID::Kaon))) {
441
433
continue ;
442
434
}
443
435
trackHistoPartTwo.fillQA <isMC, true >(part);
@@ -449,11 +441,11 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
449
441
// / Now build the combinations for non-identical particle pairs
450
442
for (auto & [p1, p2] : combinations (CombinationsFullIndexPolicy (groupPartsOne, groupPartsTwo))) {
451
443
452
- if (!IsParticleNSigma ((int8_t )1 , p1.p (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
444
+ if (!IsParticleNSigma ((int8_t )1 , p1.pt (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
453
445
continue ;
454
446
}
455
447
456
- if (!IsParticleNSigma ((int8_t )2 , p2.p (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
448
+ if (!IsParticleNSigma ((int8_t )2 , p2.pt (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
457
449
continue ;
458
450
}
459
451
@@ -483,11 +475,11 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
483
475
double rand ;
484
476
for (auto & [p1, p2] : combinations (CombinationsStrictlyUpperIndexPolicy (groupPartsOne, groupPartsOne))) {
485
477
486
- if (!IsParticleNSigma ((int8_t )2 , p1.p (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
478
+ if (!IsParticleNSigma ((int8_t )2 , p1.pt (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
487
479
continue ;
488
480
}
489
481
490
- if (!IsParticleNSigma ((int8_t )2 , p2.p (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
482
+ if (!IsParticleNSigma ((int8_t )2 , p2.pt (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
491
483
continue ;
492
484
}
493
485
@@ -627,11 +619,11 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
627
619
628
620
for (auto & [p1, p2] : combinations (CombinationsFullIndexPolicy (groupPartsOne, groupPartsTwo))) {
629
621
630
- if (!IsParticleNSigma ((int8_t )2 , p1.p (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
622
+ if (!IsParticleNSigma ((int8_t )2 , p1.pt (), trackCuts.getNsigmaTPC (p1, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p1, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p1, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p1, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p1, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p1, o2::track::PID::Kaon))) {
631
623
continue ;
632
624
}
633
625
634
- if (!IsParticleNSigma ((int8_t )2 , p2.p (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
626
+ if (!IsParticleNSigma ((int8_t )2 , p2.pt (), trackCuts.getNsigmaTPC (p2, o2::track::PID::Proton), trackCuts.getNsigmaTOF (p2, o2::track::PID::Proton), trackCuts.getNsigmaTPC (p2, o2::track::PID::Pion), trackCuts.getNsigmaTOF (p2, o2::track::PID::Pion), trackCuts.getNsigmaTPC (p2, o2::track::PID::Kaon), trackCuts.getNsigmaTOF (p2, o2::track::PID::Kaon))) {
635
627
continue ;
636
628
}
637
629
@@ -682,50 +674,13 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
682
674
// / process function for to call doMixedEvent with Data
683
675
// / @param cols subscribe to the collisions table (Data)
684
676
// / @param parts subscribe to the femtoUniverseParticleTable
685
- void processMixedEventMultMix (soa::Filtered<o2::aod::FDCollisions>& cols,
686
- FilteredFemtoFullParticles& parts)
677
+ void processMixedEvent (soa::Filtered<o2::aod::FDCollisions>& cols,
678
+ FilteredFemtoFullParticles& parts)
687
679
{
688
- for (auto & [collision1, collision2] : soa::selfCombinations (colBinningMult, ConfMixingDepth , -1 , cols, cols)) {
680
+ for (auto & [collision1, collision2] : soa::selfCombinations (colBinning, 5 , -1 , cols, cols)) {
689
681
690
682
const int multiplicityCol = collision1.multNtr ();
691
- MixQaRegistry.fill (HIST (" MixingQA/hMECollisionBins" ), colBinningMult.getBin ({collision1.posZ (), multiplicityCol}));
692
-
693
- const auto & magFieldTesla1 = collision1.magField ();
694
- const auto & magFieldTesla2 = collision2.magField ();
695
-
696
- if (magFieldTesla1 != magFieldTesla2) {
697
- continue ;
698
- }
699
-
700
- if (cfgProcessPM) {
701
- auto groupPartsOne = partsOne->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision1.globalIndex (), cache);
702
- auto groupPartsTwo = partsTwo->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision2.globalIndex (), cache);
703
- doMixedEvent<false >(groupPartsOne, groupPartsTwo, parts, magFieldTesla1, multiplicityCol, 1 );
704
- }
705
- if (cfgProcessPP) {
706
- auto groupPartsOne = partsOne->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision1.globalIndex (), cache);
707
- auto groupPartsTwo = partsOne->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision2.globalIndex (), cache);
708
- doMixedEvent<false >(groupPartsOne, groupPartsTwo, parts, magFieldTesla1, multiplicityCol, 2 );
709
- }
710
- if (cfgProcessMM) {
711
- auto groupPartsOne = partsTwo->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision1.globalIndex (), cache);
712
- auto groupPartsTwo = partsTwo->sliceByCached (aod::femtouniverseparticle::fdCollisionId, collision2.globalIndex (), cache);
713
- doMixedEvent<false >(groupPartsOne, groupPartsTwo, parts, magFieldTesla1, multiplicityCol, 3 );
714
- }
715
- }
716
- }
717
- PROCESS_SWITCH (femtoUniversePairTaskTrackTrack3DMultKtExtended, processMixedEventMultMix, " Enable processing mixed events" , false );
718
-
719
- // / process function for to call doMixedEvent with Data
720
- // / @param cols subscribe to the collisions table (Data)
721
- // / @param parts subscribe to the femtoUniverseParticleTable
722
- void processMixedEventCentMix (soa::Filtered<o2::aod::FDCollisions>& cols,
723
- FilteredFemtoFullParticles& parts)
724
- {
725
- for (auto & [collision1, collision2] : soa::selfCombinations (colBinningCent, ConfMixingDepth, -1 , cols, cols)) {
726
-
727
- const int multiplicityCol = collision1.multV0M ();
728
- MixQaRegistry.fill (HIST (" MixingQA/hMECollisionBins" ), colBinningCent.getBin ({collision1.posZ (), multiplicityCol}));
683
+ MixQaRegistry.fill (HIST (" MixingQA/hMECollisionBins" ), colBinning.getBin ({collision1.posZ (), multiplicityCol}));
729
684
730
685
const auto & magFieldTesla1 = collision1.magField ();
731
686
const auto & magFieldTesla2 = collision2.magField ();
@@ -751,7 +706,7 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
751
706
}
752
707
}
753
708
}
754
- PROCESS_SWITCH (femtoUniversePairTaskTrackTrack3DMultKtExtended, processMixedEventCentMix , " Enable processing mixed events" , false );
709
+ PROCESS_SWITCH (femtoUniversePairTaskTrackTrack3DMultKtExtended, processMixedEvent , " Enable processing mixed events" , true );
755
710
756
711
// / brief process function for to call doMixedEvent with Monte Carlo
757
712
// / @param cols subscribe to the collisions table (Monte Carlo Reconstructed reconstructed)
@@ -761,10 +716,10 @@ struct femtoUniversePairTaskTrackTrack3DMultKtExtended {
761
716
soa::Join<FilteredFemtoFullParticles, aod::FDMCLabels>& parts,
762
717
o2::aod::FDMCParticles&)
763
718
{
764
- for (auto & [collision1, collision2] : soa::selfCombinations (colBinningMult , 5 , -1 , cols, cols)) {
719
+ for (auto & [collision1, collision2] : soa::selfCombinations (colBinning , 5 , -1 , cols, cols)) {
765
720
766
721
const int multiplicityCol = collision1.multNtr ();
767
- MixQaRegistry.fill (HIST (" MixingQA/hMECollisionBins" ), colBinningMult .getBin ({collision1.posZ (), multiplicityCol}));
722
+ MixQaRegistry.fill (HIST (" MixingQA/hMECollisionBins" ), colBinning .getBin ({collision1.posZ (), multiplicityCol}));
768
723
769
724
const auto & magFieldTesla1 = collision1.magField ();
770
725
const auto & magFieldTesla2 = collision2.magField ();
0 commit comments