@@ -210,21 +210,19 @@ struct JetFinderHFTask {
210210 o2::framework::PresliceOptional<o2::soa::Filtered<JetTracksSubTable>> perDielectronMcCandidate = o2::aod::bkgdielectronmc::candidateId;
211211
212212 // function that generalically processes Data and reco level events
213- template <bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
213+ template <bool isMC, bool isEvtWiseSub, typename T, typename U, typename V, typename M, typename N, typename O>
214214 void analyseCharged (T const & collision, U const & tracks, V const & candidate, M& jetsTableInput, N& constituentsTableInput, O& /* originalTracks*/ , float minJetPt, float maxJetPt)
215215 {
216216 if (!jetderiveddatautilities::selectCollision (collision, eventSelectionBits, skipMBGapEvents, applyRCTSelections) || !jetderiveddatautilities::selectTrigger (collision, triggerMaskBits)) {
217217 return ;
218218 }
219219 inputParticles.clear ();
220220
221- if constexpr (jetcandidateutilities::isCandidate<V>() ) {
221+ if constexpr (!isMC ) {
222222 if (!jetfindingutilities::analyseCandidate (inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax)) {
223223 return ;
224224 }
225- }
226-
227- if constexpr (jetcandidateutilities::isMcCandidate<V>()) {
225+ } else {
228226 if (!jetfindingutilities::analyseCandidateMC (inputParticles, candidate, candPtMin, candPtMax, candYMin, candYMax, rejectBackgroundMCDCandidates)) {
229227 return ;
230228 }
@@ -269,31 +267,31 @@ struct JetFinderHFTask {
269267 void processChargedJetsData (o2::soa::Filtered<o2::aod::JetCollisions>::iterator const & collision, o2::soa::Filtered<o2::aod::JetTracks> const & tracks, CandidateTableData const & candidates)
270268 {
271269 for (typename CandidateTableData::iterator const & candidate : candidates) { // why can the type not be auto? try const auto
272- analyseCharged<false >(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
270+ analyseCharged<false , false >(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
273271 }
274272 }
275273 PROCESS_SWITCH (JetFinderHFTask, processChargedJetsData, " charged hf jet finding on data" , false );
276274
277275 void processChargedEvtWiseSubJetsData (o2::soa::Filtered<o2::aod::JetCollisions>::iterator const & collision, o2::soa::Filtered<JetTracksSubTable> const & tracks, CandidateTableData const & candidates)
278276 {
279277 for (typename CandidateTableData::iterator const & candidate : candidates) {
280- analyseCharged<true >(collision, jetcandidateutilities::slicedPerCandidate (tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
278+ analyseCharged<false , true >(collision, jetcandidateutilities::slicedPerCandidate (tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
281279 }
282280 }
283281 PROCESS_SWITCH (JetFinderHFTask, processChargedEvtWiseSubJetsData, " charged hf jet finding on data with event-wise constituent subtraction" , false );
284282
285283 void processChargedJetsMCD (o2::soa::Filtered<o2::aod::JetCollisions>::iterator const & collision, o2::soa::Filtered<o2::aod::JetTracks> const & tracks, CandidateTableMCD const & candidates)
286284 {
287285 for (typename CandidateTableMCD::iterator const & candidate : candidates) {
288- analyseCharged<false >(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
286+ analyseCharged<true , false >(collision, tracks, candidate, jetsTable, constituentsTable, tracks, jetPtMin, jetPtMax);
289287 }
290288 }
291289 PROCESS_SWITCH (JetFinderHFTask, processChargedJetsMCD, " charged hf jet finding on MC detector level" , false );
292290
293291 void processChargedEvtWiseSubJetsMCD (o2::soa::Filtered<o2::aod::JetCollisions>::iterator const & collision, o2::soa::Filtered<JetTracksSubTable> const & tracks, CandidateTableMCD const & candidates)
294292 {
295293 for (typename CandidateTableMCD::iterator const & candidate : candidates) {
296- analyseCharged<true >(collision, jetcandidateutilities::slicedPerCandidate (tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
294+ analyseCharged<true , true >(collision, jetcandidateutilities::slicedPerCandidate (tracks, candidate, perD0Candidate, perDplusCandidate, perDsCandidate, perDstarCandidate, perLcCandidate, perB0Candidate, perBplusCandidate, perXicToXiPiPiCandidate, perDielectronCandidate), candidate, jetsEvtWiseSubTable, constituentsEvtWiseSubTable, tracks, jetEWSPtMin, jetEWSPtMax);
297295 }
298296 }
299297 PROCESS_SWITCH (JetFinderHFTask, processChargedEvtWiseSubJetsMCD, " charged hf jet finding on MC detector level with event-wise constituent subtraction" , false );
0 commit comments