2222#include " Framework/runDataProcessing.h"
2323#include " Framework/AnalysisTask.h"
2424#include " Framework/AnalysisDataModel.h"
25- #include " Framework/ASoAHelpers.h"
2625#include " PWGDQ/DataModel/ReducedInfoTables.h"
2726#include " PWGDQ/Core/VarManager.h"
2827#include " PWGDQ/Core/HistogramManager.h"
3231#include " PWGDQ/Core/CutsLibrary.h"
3332#include " PWGDQ/Core/MCSignal.h"
3433#include " PWGDQ/Core/MCSignalLibrary.h"
35- #include " DataFormatsParameters/GRPObject.h"
3634#include " CCDB/BasicCCDBManager.h"
3735#include " DataFormatsParameters/GRPMagField.h"
38- #include " Field/MagneticField.h"
39- #include " TGeoGlobalMagField.h"
40- #include " DetectorsBase/Propagator.h"
4136#include " DetectorsBase/GeometryManager.h"
4237
4338using std::cout;
@@ -810,7 +805,7 @@ struct AnalysisSameEventPairing {
810805 } // end runPairing
811806
812807 template <typename TTracksMC>
813- void runMCGen (TTracksMC const & groupedMCTracks)
808+ void runMCGen (TTracksMC& groupedMCTracks)
814809 {
815810 // loop over mc stack and fill histograms for pure MC truth signals
816811 // group all the MC tracks which belong to the MC event corresponding to the current reconstructed event
@@ -824,7 +819,14 @@ struct AnalysisSameEventPairing {
824819 if (sig.GetNProngs () != 1 ) { // NOTE: 1-prong signals required
825820 continue ;
826821 }
827- if (sig.CheckSignal (false , mctrack)) {
822+ bool checked = false ;
823+ if constexpr (soa::is_soa_filtered_v<TTracksMC>) {
824+ auto mctrack_raw = groupedMCTracks.rawIteratorAt (mctrack.globalIndex ());
825+ checked = sig.CheckSignal (false , mctrack_raw);
826+ } else {
827+ checked = sig.CheckSignal (false , mctrack);
828+ }
829+ if (checked) {
828830 fHistMan ->FillHistClass (Form (" MCTruthGen_%s" , sig.GetName ()), VarManager::fgValues);
829831 }
830832 }
@@ -836,7 +838,15 @@ struct AnalysisSameEventPairing {
836838 continue ;
837839 }
838840 for (auto & [t1, t2] : combinations (groupedMCTracks, groupedMCTracks)) {
839- if (sig.CheckSignal (false , t1, t2)) {
841+ bool checked = false ;
842+ if constexpr (soa::is_soa_filtered_v<TTracksMC>) {
843+ auto t1_raw = groupedMCTracks.rawIteratorAt (t1.globalIndex ());
844+ auto t2_raw = groupedMCTracks.rawIteratorAt (t2.globalIndex ());
845+ checked = sig.CheckSignal (false , t1_raw, t2_raw);
846+ } else {
847+ checked = sig.CheckSignal (false , t1, t2);
848+ }
849+ if (checked) {
840850 VarManager::FillPairMC (t1, t2);
841851 fHistMan ->FillHistClass (Form (" MCTruthGenPair_%s" , sig.GetName ()), VarManager::fgValues);
842852 }
0 commit comments