|
14 | 14 |
|
15 | 15 | #include "Common/CCDB/EventSelectionParams.h" |
16 | 16 | #include "Common/CCDB/TriggerAliases.h" |
| 17 | +#include "Common/Core/TableHelper.h" |
17 | 18 | #include "Common/DataModel/Centrality.h" |
18 | 19 | #include "Common/DataModel/EventSelection.h" |
19 | 20 | #include "Common/DataModel/Multiplicity.h" |
@@ -161,9 +162,16 @@ struct FilterCF { |
161 | 162 | std::vector<bool> mcReconstructedCache; |
162 | 163 | std::vector<int> mcParticleLabelsCache; |
163 | 164 |
|
164 | | - void init(InitContext&) |
| 165 | + void init(InitContext& initContext) |
165 | 166 | { |
166 | 167 | if (!cfgEfficiencyMultiplicity.value.empty()) { |
| 168 | + bool processTracksEnabled = false; |
| 169 | + if (!o2::common::core::getTaskOptionValue(initContext, "multiplicity-selector", "processTracks", processTracksEnabled, false)) { |
| 170 | + LOGF(fatal, "Could not determine whether MultiplicitySelector::processTracks is enabled"); |
| 171 | + } |
| 172 | + if (!processTracksEnabled) { |
| 173 | + LOGF(fatal, "Efficiency-corrected multiplicity requires MultiplicitySelector::processTracks"); |
| 174 | + } |
167 | 175 | if (cfgLocalEfficiency != 0 && cfgLocalEfficiency != 1) { |
168 | 176 | LOGF(fatal, "cfgLocalEfficiency must be 0 (CCDB) or 1 (local ROOT file)"); |
169 | 177 | } |
@@ -358,9 +366,6 @@ struct FilterCF { |
358 | 366 | template <typename TCollision, typename TTracks> |
359 | 367 | float getCorrectedMultiplicity(const TCollision& collision, const TTracks& tracks, uint64_t timestamp) |
360 | 368 | { |
361 | | - if (!collision.isTrackMultiplicity()) { |
362 | | - LOGF(fatal, "Efficiency-corrected multiplicity requires MultiplicitySelector::processTracks"); |
363 | | - } |
364 | 369 | auto* efficiency = loadMultiplicityEfficiency(timestamp); |
365 | 370 | double correctedMultiplicity = 0.; |
366 | 371 | size_t skippedTracks = 0; |
@@ -778,69 +783,69 @@ struct MultiplicitySelector { |
778 | 783 |
|
779 | 784 | void processTracks(aod::Collision const&, soa::Filtered<soa::Join<aod::Tracks, aod::TrackSelection>> const& tracks) |
780 | 785 | { |
781 | | - output(tracks.size(), true); |
| 786 | + output(tracks.size()); |
782 | 787 | } |
783 | 788 | PROCESS_SWITCH(MultiplicitySelector, processTracks, "Select track count as multiplicity", false); |
784 | 789 |
|
785 | 790 | void processFT0M(aod::CentFT0Ms const& centralities) |
786 | 791 | { |
787 | 792 | for (const auto& c : centralities) { |
788 | | - output(c.centFT0M(), false); |
| 793 | + output(c.centFT0M()); |
789 | 794 | } |
790 | 795 | } |
791 | 796 | PROCESS_SWITCH(MultiplicitySelector, processFT0M, "Select FT0M centrality as multiplicity", false); |
792 | 797 |
|
793 | 798 | void processFT0C(aod::CentFT0Cs const& centralities) |
794 | 799 | { |
795 | 800 | for (const auto& c : centralities) { |
796 | | - output(c.centFT0C(), false); |
| 801 | + output(c.centFT0C()); |
797 | 802 | } |
798 | 803 | } |
799 | 804 | PROCESS_SWITCH(MultiplicitySelector, processFT0C, "Select FT0C centrality as multiplicity", false); |
800 | 805 |
|
801 | 806 | void processFT0CVariant1(aod::CentFT0CVariant1s const& centralities) |
802 | 807 | { |
803 | 808 | for (const auto& c : centralities) { |
804 | | - output(c.centFT0CVariant1(), false); |
| 809 | + output(c.centFT0CVariant1()); |
805 | 810 | } |
806 | 811 | } |
807 | 812 | PROCESS_SWITCH(MultiplicitySelector, processFT0CVariant1, "Select FT0CVariant1 centrality as multiplicity", false); |
808 | 813 |
|
809 | 814 | void processFT0CVariant2(aod::CentFT0CVariant2s const& centralities) |
810 | 815 | { |
811 | 816 | for (const auto& c : centralities) { |
812 | | - output(c.centFT0CVariant2(), false); |
| 817 | + output(c.centFT0CVariant2()); |
813 | 818 | } |
814 | 819 | } |
815 | 820 | PROCESS_SWITCH(MultiplicitySelector, processFT0CVariant2, "Select FT0CVariant2 centrality as multiplicity", false); |
816 | 821 |
|
817 | 822 | void processFT0A(aod::CentFT0As const& centralities) |
818 | 823 | { |
819 | 824 | for (const auto& c : centralities) { |
820 | | - output(c.centFT0A(), false); |
| 825 | + output(c.centFT0A()); |
821 | 826 | } |
822 | 827 | } |
823 | 828 | PROCESS_SWITCH(MultiplicitySelector, processFT0A, "Select FT0A centrality as multiplicity", false); |
824 | 829 |
|
825 | 830 | void processCentNGlobal(aod::CentNGlobals const& centralities) |
826 | 831 | { |
827 | 832 | for (const auto& c : centralities) { |
828 | | - output(c.centNGlobal(), false); |
| 833 | + output(c.centNGlobal()); |
829 | 834 | } |
830 | 835 | } |
831 | 836 | PROCESS_SWITCH(MultiplicitySelector, processCentNGlobal, "Select CentNGlobal centrality as multiplicity", false); |
832 | 837 |
|
833 | 838 | void processRun2V0M(aod::CentRun2V0Ms const& centralities) |
834 | 839 | { |
835 | 840 | for (const auto& c : centralities) { |
836 | | - output(c.centRun2V0M(), false); |
| 841 | + output(c.centRun2V0M()); |
837 | 842 | } |
838 | 843 | } |
839 | 844 | PROCESS_SWITCH(MultiplicitySelector, processRun2V0M, "Select V0M centrality as multiplicity", true); |
840 | 845 |
|
841 | 846 | void processMCGen(aod::McCollision const&, aod::McParticles const& particles) |
842 | 847 | { |
843 | | - output(particles.size(), false); |
| 848 | + output(particles.size()); |
844 | 849 | } |
845 | 850 | PROCESS_SWITCH(MultiplicitySelector, processMCGen, "Select MC particle count as multiplicity", false); |
846 | 851 | }; |
|
0 commit comments