1616
1717#include " PWGHF/HFC/DataModel/CorrelationTables.h"
1818#include " PWGHF/HFL/DataModel/ElectronSelectionTable.h"
19+ #include " PWGJE/DataModel/EMCALClusters.h"
1920
2021#include " Common/CCDB/TriggerAliases.h"
2122#include " Common/Core/RecoDecay.h"
@@ -62,7 +63,7 @@ struct HfCorrelatorHfeHadrons {
6263 // Event Selection
6364 Configurable<float > zPvPosMax{" zPvPosMax" , 10 ., " Maximum z of the primary vertex (cm)" };
6465 Configurable<bool > isRun3{" isRun3" , true , " Data is from Run3 or Run2" };
65-
66+ Configurable< bool > skipNoEmcClusters{ " skipNoEmcClusters " , false , " Skip events with no EMCal clusters " };
6667 Configurable<int > numberEventsMixed{" numberEventsMixed" , 5 , " number of events mixed in ME process" };
6768 Configurable<float > invMassEEMax{" invMassEEMax" , 0 .14f , " max Invariant Mass for Photonic electron" };
6869 // Associated Hadron selection
@@ -211,12 +212,17 @@ struct HfCorrelatorHfeHadrons {
211212 }
212213
213214 // Electron-hadron Correlation
214- template <bool IsMc, typename TracksType, typename ElectronType, typename CollisionType, typename BcType, typename McParticlesType>
215- void fillCorrelation (CollisionType const & collision, ElectronType const & electrons, TracksType const & tracks, BcType const &, McParticlesType const &)
215+ template <bool IsMc, typename TracksType, typename ElectronType, typename EmcClusterType, typename CollisionType, typename BcType, typename McParticlesType>
216+ void fillCorrelation (CollisionType const & collision, ElectronType const & electrons, TracksType const & tracks, EmcClusterType const & emcClusters, BcType const &, McParticlesType const &)
216217 {
217218 if (!(isRun3 ? collision.sel8 () : (collision.sel7 () && collision.alias_bit (kINT7 )))) {
218219 return ;
219220 }
221+ // skip events with no clusters
222+ if (emcClusters.size () == 0 && skipNoEmcClusters) {
223+ return ;
224+ }
225+
220226 int poolBin = corrBinning.getBin (std::make_tuple (collision.posZ (), collision.multFT0M ()));
221227 auto bc = collision.template bc_as <BcType>();
222228 int gCollisionId = collision.globalIndex ();
@@ -240,7 +246,11 @@ struct HfCorrelatorHfeHadrons {
240246 if (!selAssoHadron (hTrack)) {
241247 continue ;
242248 }
249+ if (!skipEventTableFilling) {
250+ registry.fill (HIST (" hptHadron" ), hTrack.pt ());
243251
252+ entryHadron (hTrack.phi (), hTrack.eta (), hTrack.pt (), poolBin, gCollisionId , timeStamp);
253+ }
244254 // Mc rec hadron efficiency
245255 if constexpr (IsMc) {
246256 if (hTrack.has_mcParticle ()) {
@@ -375,13 +385,7 @@ struct HfCorrelatorHfeHadrons {
375385 }
376386
377387 entryElectronHadronPair (deltaPhi, deltaEta, ptElectron, ptHadron, eTrack.eopEl (), eTrack.m02El (), eTrack.tpcNSigmaElTrack (), eTrack.tofNSigmaElTrack (), eTrack.tpcNClsCrRowsTrack (), eTrack.tpcCrRowsRatioTrack (), eTrack.itsChi2NClTrack (), eTrack.tpcChi2NClTrack (), eTrack.dcaXYTrack (), eTrack.dcaZTrack (), hTrack.tpcNClsCrossedRows (), hTrack.tpcCrossedRowsOverFindableCls (), hTrack.itsChi2NCl (), hTrack.tpcChi2NCl (), hTrack.dcaXY (), hTrack.dcaZ (), poolBin, nElHadLSCorr, nElHadUSCorr);
378- if (!skipEventTableFilling) {
379- if (cntEle == 0 ) {
380- registry.fill (HIST (" hptHadron" ), hTrack.pt ());
381388
382- entryHadron (hTrack.phi (), hTrack.eta (), hTrack.pt (), poolBin, gCollisionId , timeStamp);
383- }
384- }
385389 } // end Hadron Track loop
386390 cntEle++;
387391 } // end Electron loop
@@ -451,10 +455,10 @@ struct HfCorrelatorHfeHadrons {
451455
452456 void processData (TableCollision const & collision,
453457 aod::HfCorrSelEl const & electrons,
454- TableTracks const & tracks,
458+ TableTracks const & tracks, aod::EMCALClusters const & emcClusters,
455459 aod::BCsWithTimestamps const & bcs)
456460 {
457- fillCorrelation<false >(collision, electrons, tracks, bcs, 0 );
461+ fillCorrelation<false >(collision, electrons, tracks, emcClusters, bcs, 0 );
458462 }
459463
460464 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processData, " Process for Data" , false );
@@ -463,10 +467,10 @@ struct HfCorrelatorHfeHadrons {
463467
464468 void processMcRec (McTableCollision const & mcCollision,
465469 aod::HfCorrSelEl const & mcElectrons,
466- McTableTracks const & mcTracks,
470+ McTableTracks const & mcTracks, aod::EMCALClusters const & emcClusters,
467471 aod::BCsWithTimestamps const & bcs, aod::McParticles const & mcParticle)
468472 {
469- fillCorrelation<true >(mcCollision, mcElectrons, mcTracks, bcs, mcParticle);
473+ fillCorrelation<true >(mcCollision, mcElectrons, mcTracks, emcClusters, bcs, mcParticle);
470474 }
471475
472476 PROCESS_SWITCH (HfCorrelatorHfeHadrons, processMcRec, " Process MC Reco mode" , true );
0 commit comments